【问题标题】:Regex to match an exact number of characters in a string [duplicate]正则表达式匹配字符串中的确切字符数[重复]
【发布时间】: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


【解决方案1】:

使用替代项来匹配字符串的非数字或开头/结尾:

(^|\D)\d{9}($|\D)

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 2013-01-13
    • 1970-01-01
    • 2020-12-17
    • 2022-11-13
    • 2023-03-09
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多