有没有办法让我使用的正则表达式只匹配 4 个数字?
Is there a way to get the regex that I am using to match 4 numbers only?
我遇到的问题是我使用的正则表达式比 8801 的不同变体更匹配。我需要正则表达式只匹配 8801 而不是 01 和 108。下面的 link 显示了如何我正在使用的正则表达式比所需的 8801 更匹配。将不胜感激任何帮助。
"\b[8]*(?:1[8]*[8]?0|0[8]*[8]?1)[8]*\b"
您可以使用
\b(?=\d{4}\b)8*(?:18*0|08*1)8*\b
参见regex demo。请注意 [8]*[8]?
= 8*
(零个或多个 8
个字符)和 [8]
= 8
(在这种情况下方括号是多余的)。
(?=\d{4}\b)
正向先行要求四位数字后跟紧靠当前位置右侧的单词边界位置。
我遇到的问题是我使用的正则表达式比 8801 的不同变体更匹配。我需要正则表达式只匹配 8801 而不是 01 和 108。下面的 link 显示了如何我正在使用的正则表达式比所需的 8801 更匹配。将不胜感激任何帮助。
"\b[8]*(?:1[8]*[8]?0|0[8]*[8]?1)[8]*\b"
您可以使用
\b(?=\d{4}\b)8*(?:18*0|08*1)8*\b
参见regex demo。请注意 [8]*[8]?
= 8*
(零个或多个 8
个字符)和 [8]
= 8
(在这种情况下方括号是多余的)。
(?=\d{4}\b)
正向先行要求四位数字后跟紧靠当前位置右侧的单词边界位置。