Skip to main content
 首页 » 编程设计

c#之正则表达式:如何接受符号 (@)

2024年01月24日26zhoujg

我尝试使用这个正则表达式:

^[a-z0-9_-@]{3,15}$  

... 但由于 @ 符号,它会抛出异常。我怎样才能让它接受 @ 符号?

请您参考如下方法:

转义-,或者将其移动到字符类的开头([]):

@"^[a-z0-9_\-@]{3,15}$" 
 
@"^[-a-z0-9_@]{3,15}$" 

不转义 [.. _-@] 尝试匹配 _ 和 @ 之间的字符。但是它们之间没有字符:因为_和@的ASCII码是95,64。错误消息解决了这个问题。 (即使它匹配 @ 和 _ 之间的字符,它也可能不是您想要的。)

C# example

引用:错误信息(单声道)

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  
  ...