【发布时间】:2019-03-22 16:28:44
【问题描述】:
我正在尝试匹配 9 位整数。我正在扫描的文本长度可以是 1-200 个字符。
我遇到的麻烦是,如果输入的一系列数字长于 9,我不想匹配。如果整个输入字符串是 9 位,我还需要匹配。或以 9 位数字开头或结尾。
我试过了:
d{9} > This matches sub-strings longer than 9 digits
d{9}(\D) > This works unless the sub-string is at the end since this expects some character after the 9 digits.
我搜索了很多,但我没有找到这个确切的问题。有什么想法吗?
注意:我碰巧正在与 ColdFusion 合作解决这个特定问题,但我希望通用正则表达式能够解决问题。如有必要,我可以在 CFML 中编写代码。
【问题讨论】:
-
数字本身应该是一个单词,还是周围可以有字母?如果是单词,请使用
\b单词边界模式。 -
它周围可以有任何东西,除了其他数字(或周围什么都没有)。如果输入是 abd123456789xyz,那么它是匹配的。但是 abd1234567890xyz 不匹配,因为它有多余的数字。 Abd sdf 123456789[end of line/file] 将匹配。谢谢!
标签: regex coldfusion