无法在任何地方找到这个确切的案例。许多类似的例子,但出于某些原因,我的工作并不起作用。
尝试完成: 在包含AddMember的每一行中,匹配第二个引号字符后面的所有文本到行的结尾
经过大量研究,我已经做到了这一点:
(?(?=.*\b(AddMember)\b.*\n)[^\"]+[^\"]+\n)
.*\b(AddMember)\b.*\n
:匹配所有正确的行
[^\"]+[^\"]+\n
:在第二个引号char后正确匹配
尝试if - 然后将它们与此结构一起
(?(?=ifthis)thenthis)
但并不匹配。
示例字符串:
foo.AddMember("bar");
fu.AddMember("bur", test);
应匹配
);
, test);
对于什么是错误非常好奇!谢谢你的帮助。
答案 0 :(得分:0)
此模式适用于您的示例:
(?<=\bAddMember\b[^"]*"[^"]*")(.*)
这使用了一个lookbehind断言,这意味着你想要AddMember&#34;&#34;在实际匹配之前,你使用了一个先行断言。
干杯
答案 1 :(得分:0)
听起来像你正在使用PHP / PCRE。你为什么需要条件?只需匹配
\bAddMember\b[^"]*"[^"]*"\K.*
See demo at regex101(使用\K to reset报告的匹配开头。) 或者只是use a capture group for extraction,它适用于大多数正则表达式。