Skip to main content
 首页 » 编程设计

正则表达式前瞻

2024年12月31日7落叶

我正在使用正则表达式来查找:

test:? 

后跟任何字符,直到遇到下一个:
test:? 

现在,当我运行这个正则表达式时,我做了:
((?:test:\?)(.*)(?!test:\?)) 

关于这段文字:
test:?foo2=bar2&baz2=foo2test:?foo=bar&baz=footest:?foo2=bar2&baz2=foo2 

我希望得到:
test:?foo2=bar2&baz2=foo2 
 
test:?foo=bar&baz=foo 
 
test:?foo2=bar2&baz2=foo2 

但相反,它匹配所有内容。有没有更多正则表达式经验的人知道我哪里出错了?我之前使用过正则表达式进行模式匹配,但这是我第一次体验环视/超前。

在此先感谢您的任何帮助/提示/指示:-)

请您参考如下方法:

我想你可以探索一个贪婪的版本。
(展开)
(test:\? (?: (?!test:\?)[\s\S])* )