我尝试使用这个正则表达式:
^[a-z0-9_-@]{3,15}$
... 但由于 @
符号,它会抛出异常。我怎样才能让它接受 @
符号?
最佳答案
转义-
,或者将其移动到字符类的开头([]
):
@"^[a-z0-9_\-@]{3,15}$"
@"^[-a-z0-9_@]{3,15}$"
不转义 [.. _-@]
尝试匹配 _
和 @
之间的字符。但是它们之间没有字符:因为_
和@
的ASCII码是95
,64
。错误消息解决了这个问题。 (即使它匹配 @
和 _
之间的字符,它也可能不是您想要的。)
引用:错误信息(单声道)
Unhandled Exception: System.ArgumentException: parsing "^[a-z0-9_-@]{3,15}$" - [95-64] range in reverse order.
Parameter name: ^[a-z0-9_-@]{3,15}$
at System.Text.RegularExpressions.Syntax.Parser.ParseCharacterClass (RegexOptions options) [0x00000] in <filename unknown>:0
...
关于c# - 正则表达式:如何接受符号 (@)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19582639/