gpt4 book ai didi

c# - "00000000000000000000000000000"匹配正则表达式 "^[1-9]|0$"

转载 作者:可可西里 更新时间:2023-11-01 07:49:23 27 4
gpt4 key购买 nike

在 .Net4.5 中,我发现

的结果
System.Text.RegularExpressions.Regex.IsMatch(
"00000000000000000000000000000", "^[1-9]|0$")

是真的。

我期望的结果是错误的。我不知道为什么。你能帮帮我吗?

更新:一开始,我在验证正则表达式 ^-?[1-9]\d*|0$ ,它用于匹配在互联网上找到的整数,我发现带有多个 0 匹配正则表达式。

最佳答案

问题是交流发电机的绑定(bind)行为。默认情况下(即不使用分组),包含交流发电机 (|) 的表达式将匹配交流发电机左侧的值或右侧的值。

因此在您的表达式中,您匹配以下其中之一:

  • ^[1-9]
  • 0$

您对 IsMatch 方法的调用返回 true,因为这两个选项中的第二个选项与字符串 00000000000000000000000000000 匹配。

要将交流发电机绑定(bind)到表达式的特定部分,您需要使用括号进行分组,如下所示:

^([1-9]|0)$

将所有这些放在一起,一个严格的表达式来验证整数,不允许前导零和负零,可能看起来像这样:

^(-?[1-9][0-9]*|0)$

关于c# - "00000000000000000000000000000"匹配正则表达式 "^[1-9]|0$",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26011524/

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