我有以下正则表达式:
^(?=.*\d)(?=.*[a-zA-Z])[[!-~]]{6,32}$
这应该匹配包含至少1位数字,1个字母字符且长度在6到32之间的所有字符串(无空格)。我几乎可以肯定我的正则表达式是正确的,因为它可以完美地here正常工作。但是,当我在C#中使用
Regex.IsMatch
时,它不起作用。bool isValidInput = Regex.IsMatch(myValue, myRegex) // I expect this to be true but it's false
除了C#外,我还注意到其他一些测试人员也不喜欢我的正则表达式。就像this。我的正则表达式有什么问题?
最佳答案
这应该匹配所有包含至少1位数字,1个字母字符且长度在6到32之间的字符串(不带空格)。[[!-~]]
是您的正则表达式breakdown:的问题(右列)
相反,我确定您要查找以下内容,\S
匹配非空格字符。
^(?=.*\d)(?=.*[a-zA-Z])\S{6,32}$
关于c# - 正则表达式匹配中的不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30652323/