gpt4 book ai didi

regex - 如何使用正则表达式忽略以 0(零)开头的数字?

转载 作者:行者123 更新时间:2023-12-04 13:23:54 25 4
gpt4 key购买 nike

我正在尝试匹配数字,但我需要遵循一些规则。
数字可以(也可以不)以符号 [+-] 开头。
如果数字以 0 开头,则后面不能跟任何内容。
但如果它本身为0,则应该匹配。

我想出了以下正则表达式:

[+-]*[1-9]\d*|[+-]*[0](?!\w)

但它并没有完全按照我的需要工作:

01 (matches 1, should match nothing)
9,000 (matches 9 and last 0, should match 9 only)
+0152 (matches 152, should match nothing)
-1200 (matches -1200, working as intended)
+0 (matches +0, working as intended)

Live demostration

最佳答案

你可以使用这个正则表达式:

[+-]?\b(?:0|[1-9][0-9]*)\b

RegEx Demo

正则表达式分解:

  • [+-]? - 可选地首先匹配 +-
  • \b - 断言单词边界
  • (?: - 开始一个非捕获组
    • 0 - 匹配单个 0
    • | - 或者
    • [1-9][0-9]* - 匹配 1-9 后跟任意数字 0 次或多次
  • ) - 结束非捕获组
  • \b - 断言单词边界

关于regex - 如何使用正则表达式忽略以 0(零)开头的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43372277/

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