【问题标题】:C# .NET Regex 'Unrecognized escape sequence' [duplicate]C#.NET Regex'无法识别的转义序列'[重复]
【发布时间】:2015-11-23 13:28:46
【问题描述】:

我正在尝试使用命名空间 System.Text.RegularExpressions 下的正则表达式验证密码字段,但我收到三个错误

'无法识别的转义序列'。

当我双击错误时,它会在我的字符范围表达式中突出显示“-”,但我不知道为什么这是错误的。

//密码必须包含一个大写,一个小写和一个数字

Regex reg = new Regex("^(?=.*[!@#$%^&*()\-_=+`~\[\]{}?|])(?=.+[a-z])(?=.+[A-Z])(? =.+[0-9]).{8,50}$");

【问题讨论】:

  • 您在正则表达式文字之前缺少@
  • 你应该转义 \ 字符。
  • 为什么要指定密码的最大长度?请不要那样做。
  • 重复谈论路径,但它是相同的 \ 字符/缺少 @ 导致问题。
  • 好像(? =.+[0-9]).{8,50} 后面有一个空格? 不应该是

标签: c# .net regex validation


【解决方案1】:

只需在第一个引号前添加@ 即可使其成为逐字字符串文字或将反斜杠转义为\\

【讨论】:

    【解决方案2】:

    ? 后面好像多了一个空格

    (? =.+[0-9]).{8,50}

    删除它。

    【讨论】:

      猜你喜欢
      • 2013-04-20
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多