【问题标题】:Regular expression brackets (), or |, ^ $ are used in combination正则表达式括号(),或|,^$组合使用
【发布时间】:2017-10-21 03:00:53
【问题描述】:

我想匹配一串数字,可以是0,但是我不允许0开头。

这是我的措辞:^0|[1-9][0-9]*$.但它会匹配 01。

这是搜索的结果写成:^(0|[1-9][0-9]*)$。为什么匹配正确后还要匹配括号。

【问题讨论】:

  • ^0$|^[1-9][0-9]*$

标签: javascript php regex


【解决方案1】:

这是我的措辞:^0|[1-9][0-9]*$ 但它会匹配 01。

那是因为你在说,匹配以 0 开头的东西,匹配以 [1-9][0-9]* 结尾的东西

说正确的话:

^0$|^[1-9][0-9]*$

或者,对备选方案进行分组 - 然后 ^ 和 $ 仍将锚定在开头 结尾找到的内容:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多