2017-08-10 91 views
0

如何使用正则表达式选择第三组数字。 使用以下字符串。正则表达式选择3组

21|2|964|Texto 02 

我想只选择964

我只设法提取\d+正则表达式的所有数字块。

谢谢。

+0

这是你的字符串怎么会一直看?含义dd | d | ddd |文本? – JBone

回答

0

如果你不能用|分裂和产生的阵列获得第3项,你可以使用

^(?:[^|]*\|){2}\K\d+ 

regex demo

或者,使用

^(?:[^|]*\|){2}(\d+) 

抢组1倍的值。见another regex demo

详细

  • ^ - 2序列 - 串
  • (?:[^|]*\|){2}的开始:
    • [^|]* - 任何0+字符以外|
    • \| - 字面|符号
  • \K - 匹配复位操作丢弃到目前为止
  • \d+匹配的文本 - 1个或多个数字。
+0

我是新来的正则表达式。我要研究你的解决方案来学习。 **谢谢。** –

+0

@RodrigoMartins:请注意,正则表达式在不同的语言中是不同的。确保你专注于正确的味道。 –

+0

@RodrigoMartins很高兴为你工作。请考虑接受答案(请参阅[如何接受SO答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work))。 –