gpt4 book ai didi

c# - 正则表达式错误?表达式不够 ")"

转载 作者:太空宇宙 更新时间:2023-11-03 20:58:51 25 4
gpt4 key购买 nike

我有这一行来匹配 ABC123457123457

Regex regex = new Regex(@"^(ABC|[])[0-9]{7}$");

所有在线正则表达式测试人员都说这是正确的,并且按预期工作。
可能是 System.Text.RegularExpression 中的错误,因为 [] 为空?

最佳答案

您不能在 .NET 正则表达式中使用 [] 来表示空字符串。如果您将正则表达式粘贴到 .NET 正则表达式测试站点,您会看到

enter image description here

实际上,你的表达式被解析为

  • ^ - 字符串的开始
  • ( - 捕获组的开始
  • ABC - 文字子串
  • | - 或者
  • [ - 字符类的开始
    • ])[0-9 - ], ), [, digits
  • ]{7} - 出现 7 次
  • $ - 字符串结尾。

此处没有结尾)

要修复当前模式,只需使用一个可选的非捕获组:

Regex regex = new Regex(@"^(?:ABC)?[0-9]{7}$");
^^^^^^^^

参见 regex demo

关于c# - 正则表达式错误?表达式不够 ")",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47814706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com