只匹配确切的数字,而不是带有斜线/破折号等的前缀

时间:2015-08-07 08:15:23

标签: regex

我需要一个只匹配长度为7的数字的正则表达式(它们可以有前导零)。我使用了以下超级简单的正则表达式:\b[0-9]{7}\b。但是,这个正则表达式也与例如数字相匹配。 5254-6408499(0241)4013999(请参阅https://regex101.com/r/zF5hV7/1)。

如何阻止它们匹配?我只想要长度为7的数字,其中包含前导和/或尾随空格。

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

(?:^|\s)([0-9]{7})(?:\s|$)

并抓住被捕获的组#1

Updated RegEx Demo

答案 1 :(得分:1)

根据正则表达式的含义,您可以创建自己的边界:

2014-09-29 14:00:00

这断言,只有当引擎断言空格或字符串结尾随后时,字符串的开头或空格才会继续匹配正好匹配的7位数。