谁能告诉我为什么常规 express 不能匹配“,2336”之后的“,2336”

短语:

ratio:71%
win:2336,2367,23363626,2336,2336
877
lose:2336

尝试过的模式:
(:|,)2336(,|\s|$)
(:|,)2336(,|\n|$)
(:|,)2336(,|\r|$)
(:|,)2336(,|[\n\r]|$)

http://regexr.com/3fgb7

最佳答案

您的问题是2336的两个实例之间的逗号已被先前的匹配所占用,因此无法再次匹配,但是您的正则表达式要求这样做。

您可以通过将第二组更改为positive lookahead assertion来解决此问题。

(:|,)2336(?=[,\s]|$)

10-06 04:37