正则表达式以查找特定长度的数字,但其前面或后面除数字以外的任何字符
我正在尝试设计一种正则表达式模式来在字符串中搜索12位数字。该数字在我要查找的数字的前面或后面可以有任意数量的其他字符(但不是数字)。
到目前为止,我已经/([0-9]{12})/
正确地找到了12位数字,但它也将匹配字符串中的13位数字。
该模式应与以下字符串的123456789012
匹配
- "rgergiu123456789012ergewrg"
- "123456789012"
- "#123456789012"
- "ergerg ergerwg erwgewrg" Rgergewrgrewg regewrge 123456789012 ergwerg"
它不应与以下字符串匹配:
- "123456789012000"
- "egjkrgkergr 123123456789012"
解决方案
您想要的是四处看看。类似于:
/(?<![0-9])[0-9]{12}(?![0-9])/
如果模式的前面或后面是另一个模式,而不使用该模式,则超前或后视匹配。因此,只有在12位数字的前面或后面没有更多的数字时,此模式才会匹配它们,而不会消耗数字前后的字符。
相关文章