C# Regex-至少一个字母数字字符并允许空格
我想确保名字字段至少有一个字母数字字符,并且允许空格和破折号C# Regex-至少一个字母数字字符并允许空格,c#,regex,C#,Regex,我想确保名字字段至少有一个字母数字字符,并且允许空格和破折号 **VALID** David Billie Joe Han-So **INVALID** - Empty is also invalid 使用此模式 ^(?=.*[a-zA-Z])[a-zA-Z -]+$ 哦,用于字母数字 ^(?=.*[a-zA-Z0-9])[a-zA-Z 0-9-]+$ 要确保破折号和空格出现在合法的位置,请使用以下命令: (?i)^[a-z]+(?:[ -]?[a-z]+)*$ 看 (?
**VALID**
David
Billie Joe
Han-So
**INVALID**
-
Empty is also invalid
使用此模式
^(?=.*[a-zA-Z])[a-zA-Z -]+$
哦,用于字母数字
^(?=.*[a-zA-Z0-9])[a-zA-Z 0-9-]+$
要确保破折号和空格出现在合法的位置,请使用以下命令:
(?i)^[a-z]+(?:[ -]?[a-z]+)*$
看
使我们处于不区分大小写的模式(?i)
确保我们位于字符串的开头^
匹配一个或多个字母[a-z]+
匹配可选的单个空格或破折号,后跟字母[-]?[a-z]+
允许零次或多次(?:[-]?[a-z]+)*
断言我们已到达字符串的末尾$
(?i)^[a-z0-9]+(?:[ -]?[a-z0-9]+)*$
^[\-a-zA-Z0-9]*[a-zA-Z0-9][\-a-zA-Z0-9]*$
?不要用正则表达式验证名称。@hwnd应该给出原因和替代方案。这与Hans----
匹配,不值得为此争论,但。。。以下是。仅供参考添加说明。:)请将您的模式修改为(?i)^[a-z0-9]+(?:[-][a-z0-9]+)*[a-z0-9]?$
以匹配至少“一个”字母数字“:-@alphabravo由于字母是字母数字,因此该模式已匹配至少一个字母数字字符。我没有在字符类中包含数字,因为我假设Adam的意思是按字母顺序排列的,正如他的示例所示。。。但你是对的,也许他也想包括数字,所以我添加了第二个正则表达式作为选项。感谢您指出这种可能性。:)别开玩笑了,你错过了我的观点,你需要添加最后一个?
来匹配至少一个@我想我终于明白你的意思了。你的意思是正则表达式匹配的字符串长度超过2个字符,但不是单字母字符串?我已经修改了这个表达方式,尽管不完全符合你的建议。接得好,谢谢。:)