【发布时间】:2017-06-16 08:57:44
【问题描述】:
我需要一种机制来查找字符串中的数字,该数字要么被非数字字符包围,要么被字符串的开头/结尾或特殊分隔符(在本例中为 43)包围。以下是一些示例:
- 订单号 12345678
- 12345678
- 12345678blabla
- 431234567843
所有这些都应该匹配12345678。目前我正在使用以下正则表达式:
(?<=^|\D|43)([0-9]{8})(?=$|\D|43)
这个表达式效果很好,但有一个缺陷。如果数字以 43 开头但不以 43 结尾,我也会得到肯定的结果。以下是我得到那些“错误”结果的示例:
- 4312345678
- 4312345678blabla
我现在需要的是一个正则表达式的构造,以了解匹配的字符串是否以 43 开头,然后仅在它也以 43 结尾时才将其作为肯定结果返回。
【问题讨论】:
标签: regex