正则表达式:在文本

时间:2015-07-31 13:14:00

标签: regex

目前我正在使用此类正则表达式"(\d{4}\b)"来提取数字。 测试字符串“test 125456 b”,因此提取结果为“5456”。

我希望在字符串“test125456b”下得到相同的结果“5456”。

我尝试使用以下正则表达式

((?<!\d)(\d{4})(?!\d))

但如果在字母之间只注明4位数字(不是更多),它就会起作用。

所以,目标是:

  • 仅提取文字中的数字
  • 仅提取特定的位数在这种情况下4)即使在文本中给出更多
  • 数字(在这种情况下为4)应该向后提取

2 个答案:

答案 0 :(得分:4)

(\d{4}(?=[^\d]))

使用它。它会查找4位数字,并带有非数字跟随。

Regex101

答案 1 :(得分:1)

获取最后四位数字。

\d{4}(?=\D*$)
  • \d{4}匹配四位数字符。
  • (?=\D*$)仅当四位数后跟零个或多个非数字字符以及行边界的结尾时。
  • 所以这匹配最后4位数字。
相关问题