正则表达式:如何解析第n个匹配

时间:2017-09-21 14:01:15

标签: javascript regex

我无法使用此正则表达式来解析第n个标记/匹配。匹配令牌很容易,但我无法提取我需要的完全匹配。

正则表达式:(?:\w+){2}(\w+)

输入:

001.002.003.004
450000.459999.1.0.1.0

使用(\w+)匹配所有令牌。工作得很好。但我无法提取第n个(例如第3或第4个)。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

(?:\w+){2}因为与期间不匹配而无法工作。 \w+匹配期间以及匹配结束时,正则表达式中的任何内容都与期间匹配。

尝试(?:\w+\.){N}(\w+),其中N是您要跳过的群组数量。因此,要捕获第3个值,N将为2,以捕获第4个值3,依此类推。

答案 1 :(得分:0)

我认为这个正则表达式可以解决你的问题: /(\w+)/g

请参阅https://regex101.com/r/vSqV7m/1/

如果您的令牌只是使用\d的数字,那就更好了: /(\d+)/g