有没有办法让我使用的正则表达式只匹配 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"

my regex demo

您可以使用

\b(?=\d{4}\b)8*(?:18*0|08*1)8*\b

参见regex demo。请注意 [8]*[8]? = 8* (零个或多个 8 个字符)和 [8] = 8 (在这种情况下方括号是多余的)。

(?=\d{4}\b) 正向先行要求四位数字后跟紧靠当前位置右侧的单词边界位置。