首页 > 解决方案 > 匹配由单词边界包围的任何九位数字,但不匹配以句点开头的数字

问题描述

有一个非常具体的正则表达式,我需要帮助构建。一些限制:不能是多行的,并且使用 Go 引擎,所以它不能使用负面的lookbehinds。

Match any nine digit number surrounded by word boundaries, but not those preceded by a period.

123456789  Should match
 123456789  Should match
123456789. Should match

0.123456789  Should not match
.123456789  Should not match

https://regex101.com/r/aAd7nN/1

到目前为止,我有\b\d{9}\b,但正如您将在 Regex101 示例中看到的那样,当有前一个句点时它不起作用。

谢谢!

标签: regex

解决方案


您还可以使用:

(?:^|\n|[^.])\b(\d{9})\b

并为您的比赛抢占第 1 组。

更新的正则表达式演示


推荐阅读