首页 > 解决方案 > 可以将后视与非固定长度模式结合使用吗?

问题描述

我正在使用正则表达式并尝试在排除先前的模式后匹配模式。

我正在使用的正则表达式:

(?<![\(\d+\:\d+\)])\d+

上面的正则表达式被应用到的内容:

(0:1) Whenever someone moves,
 (1:0) and they are on map 5,
 (1:35) and they move into position (19, 22),
    (5:19) move the triggering player to (13, 7, 92).

我正在尝试匹配以下内容:

我试图不匹配以下内容:

标签: regexregex-lookarounds

解决方案


您应该删除方括号,否则它将表示与列出的字符之一匹配的字符类。

使用否定的lookbehind也将匹配第一部分中的数字,(0:1)因为在匹配数字之前断言对于该位置是正确的。

相反,您可以使用积极的后视来断言带括号的模式在左侧,然后匹配 1+ 位。

 (?<=\(\d+:\d+\).*)\d+

正则表达式演示

如果模式应该作为字符串开头的第一件事出现:

(?<=^[^\S\r\n]*\(\d+:\d+\).*)\d+

正则表达式演示


推荐阅读