我只是正在进行一些验证,虽然坚持这个:(我想要一个只包含[a-z] [A-Z] [0-9] [_]的文字。
它应该以任何顺序接受任何上述字符。所有其他字符都将文本标记为无效。
我试过这个,但它没有用!
{
......
Regex strPattern = new Regex("[0-9]*[A-Z]*[a-z]*[_]*");
if (!strPattern.IsMatch(val))
{
return false;
}
return true
}
答案 0 :(得分:9)
你想要这个:
Regex strPattern = new Regex("^[0-9A-Za-z_]*$");
你的表达不起作用,因为:
^
和$
字符进行锚定。这意味着每个字符串都匹配,因为每个字符串包含零个或多个指定字符。 (例如,字符串“!@#$”包含零数字等等!)将表达式锚定到字符串的开头和结尾意味着整个字符串与整个匹配表达式或匹配将失败。*
更改为+
。 (*
表示“前一个令牌中的0个或更多”,而+
表示“前一个令牌中的一个或多个”。)答案 1 :(得分:0)
试试这个:
new Regex("[0-9A-Za-z_]*");