gpt4 book ai didi

c# - 正则表达式只允许 .net 中的某些字符

转载 作者:太空狗 更新时间:2023-10-30 00:27:59 24 4
gpt4 key购买 nike

我只是在进行一些验证,但还是卡住了:(我想要一个只包含 [a-z][A-Z][0-9][_] 的文本。

它应该以任何顺序接受上述任意字符任意次数。所有其他字符都将文本标记为无效。
我试过了,但没用!!

  {
......

Regex strPattern = new Regex("[0-9]*[A-Z]*[a-z]*[_]*");

if (!strPattern.IsMatch(val))
{
return false;
}

return true
}

最佳答案

你想要这个:

Regex strPattern = new Regex("^[0-9A-Za-z_]*$");

您的表达式不起作用,因为:

  • 它将接受任意数量的数字,后跟任意数量的大写字母,后跟任意数量的小写字母,再后跟任意数量的下划线。例如,下划线后跟数字将不匹配。
  • 您的模式未使用 ^$ 字符锚定。这意味着每个 字符串都将匹配,因为每个字符串都包含零个或多个指定字符。 (例如,字符串“!@#$”包含零数字等!)将表达式锚定到字符串的开头和结尾意味着整个字符串整个表达式 否则匹配将失败。
  • 这个模式仍然接受一个零长度的字符串作为有效的。如果您想强制字符串至少是一个字符,请将表达式末尾附近的 * 更改为 +。 (* 表示“0 个或多个先前的标记”,而 + 表示“1 个或多个先前的标记。”)

关于c# - 正则表达式只允许 .net 中的某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4363530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com