使用正则表达式

时间:2016-06-10 15:06:12

标签: regex count numbers

我正在尝试编写一个可以找到第n次匹配的正则表达式(其中N是一个可以在for循环中递增的数字)。我可以让正则表达式成功匹配一个数字,但我不能让它匹配序列中的特定数字。我使用的正则表达式是([0-9]+){2}

我想要做的是从字符串中挑出数字:红色,12,绿色,5,蓝色,6

使用可以选择的正则表达式,12然后,2,然后3.我希望正则表达式的{n}部分可以实现此目的,但是当我将该数字设置为2时,而不是选择如预期的那样输出数字5,它在12中获得2,当我将数字设置为3时,它根本无法找到匹配。谁能提供任何有关我做错的见解?

1 个答案:

答案 0 :(得分:5)

您可以使用此正则表达式选择N数字:

(?:\D*(\d+)){2}

2替换为您想要的任何数字。您的号码在捕获的组#1中可用

  • \D匹配任何非数字
  • \d匹配数字

RegEx Demo