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

标签 c# regex vb.net

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

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

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

最佳答案

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

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

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

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

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

关于c# - 正则表达式:如何接受符号 (@)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19582639/

相关文章:

python - re.search 将 group(1) 选项的结尾放在 group(2) 的开头。我构建正则表达式有什么问题?

ruby - 字符串中的反斜杠返回两个反斜杠

vb.net - 如何将新行添加到数据表 vb.net

c# - C# 或 VB.net 中的示例仪表板应用程序?

c# - 打开保存的工作簿导致当前工作簿抛出异常

c# - 如何将 ef4 上下文或至少某些实体还原为其原始值?

c# - 直接使用 LINQ 修改值?

C#:实现具有任何类型属性的接口(interface)

java - 正则表达式 XML 使用 java 检查值是否存在

vb.net - 如何使用 PDFsharp 创建表格?