我正试图在捕获组之后得到一个句子。这时我得到了这个正则表达式:
(?!.*foo).*
所以,当我在跟随字符串上测试它时:
foofoofooCopyStartingHere
引擎返回:
ooCopyStartingHere
如何忽略“oo”部分?
ps:起始副本标签不在我的控制之下,它可能会改变长度(但保持模式)。
测试人员试过:
!http://regexpal.com/?flags=g®ex=(%3F 富)&安培;输入= foofoofoo.e
答案 0 :(得分:1)
(?<=foo)(?!foo)(.+)
我们的想法是你在后面寻找foo
,然后检查它后面是否有foo
,然后捕获它后面的任何内容。
你没有提到任何关于停止条件的事情,所以这将继续用于其余部分,这是否符合预期?
答案 1 :(得分:0)
您可以测试一下:
(?<=foo|^)(?>[^f]+|f(?!oo))+
模式开始检查字符串之前或字符串的开头是否有“foo”。然后(?>[^f]+|f(?!oo))+
允许所有不是“foo”(所有不是“f”或“f”的字符后面没有“oo”)