【发布时间】:2023-03-17 05:25:01
【问题描述】:
我遇到的问题是,我使用的正则表达式比 8801 的不同变体更匹配。我需要正则表达式只匹配 8801,而不是 01 和 108。下面的链接显示了我正在使用的正则表达式是匹配超过所需的 8801。任何帮助将不胜感激。
"\b[8]*(?:1[8]*[8]?0|0[8]*[8]?1)[8]*\b"
【问题讨论】:
标签: regex regex-group
我遇到的问题是,我使用的正则表达式比 8801 的不同变体更匹配。我需要正则表达式只匹配 8801,而不是 01 和 108。下面的链接显示了我正在使用的正则表达式是匹配超过所需的 8801。任何帮助将不胜感激。
"\b[8]*(?:1[8]*[8]?0|0[8]*[8]?1)[8]*\b"
【问题讨论】:
标签: regex regex-group
你可以使用
\b(?=\d{4}\b)8*(?:18*0|08*1)8*\b
请参阅regex demo。请注意[8]*[8]? = 8*(零个或多个8 字符)和[8] = 8(在这种情况下方括号是多余的)。
(?=\d{4}\b) 正向前瞻需要四位数字,后面紧跟当前位置右侧的字边界位置。
【讨论】: