仅匹配正则表达式中第一个和第二个逗号之间的数字

时间:2018-01-22 14:29:42

标签: regex numbers match

示例字符串:

John, a 005, green, 01-22-18.abc Sarah, 325, blue, 03-18-17.abc Mike, b 56, red, 12-05-17.abc

我希望正则表达式分别匹配005 32556。你能告诉我如何完成它吗?

感谢。

2 个答案:

答案 0 :(得分:0)

取决于您可以使用的正则表达式引擎 Positive LookbehindPositive Lookahead

(?<=,\W|\s)\d+(?=,)

按执行顺序说明:

  • \d+匹配一个或多个数字

  • (?<=,\W|\s)前面有逗号和非单词字符或空格

  • (?=,)后面跟一个逗号。

在此尝试:

https://regex101.com/r/nkYBFh/1

答案 1 :(得分:0)

您可以使用此正则表达式匹配每行中第一个和第二个逗号之间出现的数字:

^[^,]*,[^,0-9]*([0-9]+)

捕获组#1中有数字

RegEx Demo

<强>解释

  • ^[^,]*,:匹配任何内容直到第一个逗号,然后匹配开头的逗号
  • [^,0-9]*:匹配0个或多个不是逗号或数字的字符
  • ([0-9]+):匹配1位或更多位数并将其捕获到第1组