我在捕获句子中的特定字符串时遇到了一些麻烦。
我正在使用的正则表达式是\b[0-9]{9,12}\b
捕获9到12位数字之间的数字。我使用边界来指定确切的数字,但是问题是,当我有一个与此正则表达式匹配的数字后跟一个点时,例如,正则表达式仍然匹配并给我带来很多麻烦。
在我搜索时,问题在于也\b
使用了一些特殊字符作为分隔符,对吗?然后,有没有一种方法可以考虑,例如123456789。整个字符串和正则表达式将与该示例不匹配?
谢谢 !
单词边界\b
在数字前后需要一个非单词字符(因为数字是单词字符)。由于点和逗号是非单词字符,因此允许使用它们。为确保点之间的数字顺序不匹配,您需要使用环顾四周。
您可以使用
\b(?<!\.)[0-9]{9,12}(?!\.)\b
额外的子模式是向后(?<!\.)
查找和向后查找(?!\.)
,可确保.
数字序列之前和之后都没有。
如果具有.
和,
作为小数点分隔符,则可能需要将模式调整为
\b(?<![.,])[0-9]{9,12}(?![.,])\b
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句