正则表达式选择/之后的最后一个数字

时间:2013-09-15 03:12:43

标签: regex

在这个例子中

BIOLOGIQUES                                                             3433     130906 / 3842

选择3433我使用

BIOLOGIQUES\s+(\d+)

但是我应该做些什么改变来选择最后一个3842?<​​/ p>

2 个答案:

答案 0 :(得分:1)

你可以使用这样的模式:

BIOLOGIQUES\s+(\d+)\s+(\d+)\s+/\s+(\d+)

这将匹配:

  • 文字BIOLOGIQUES
  • 一个或多个空格字符
  • 在第1组中捕获的一个或多个数字
  • 一个或多个空格字符
  • 在第2组中捕获的一个或多个数字
  • 一个或多个空格字符
  • 文字/
  • 一个或多个空格字符
  • 在第3组中捕获的一个或多个数字

给定您的示例字符串,它将分别捕获组1,2和3中的3433,130906和3842。不要忘记,许多正则表达式引擎使用正斜杠来分隔正则表达式文字(例如JavaScript),因此您可能需要转义/

/BIOLOGIQUES\s+(\d+)\s+(\d+)\s+\/\s+(\d+)/

当然,如果你想要的只是在字符串中找到/之后的'最后一个数字',那就容易多了。这样就可以了:

/.*?(\d+)\D*$

这将匹配

  • 文字/
  • 零个或多个任何角色(非贪婪)
  • 在第1组中捕获的一个或多个数字
  • 零个或多个非数字字符
  • 字符串的结尾(或多行模式中的行)

答案 1 :(得分:1)

使用贪婪量词

BIOLOGIQUES.*/.*\s(\d+)