在大多数情况下,您可以使用来避免变长的回避
K。
s/(?<=foo.*)bar/moo/s;
将会
s/foo.*Kbar/moo/s;
负向后看有点棘手。
s/(?<!foo.*)bar/moo/s;
将会
s/^(?:(?!foo).)*Kbar/moo/s;
因为
(?:(?!STRING).)*是
STRING为
[^CHAR]*是
CHAR。
如果您只是匹配,则可能甚至不需要
K。
/foo.*bar/s/^(?:(?!foo).)*bar/s
欢迎分享,转载请注明来源:内存溢出
在大多数情况下,您可以使用来避免变长的回避
K。
s/(?<=foo.*)bar/moo/s;
将会
s/foo.*Kbar/moo/s;
负向后看有点棘手。
s/(?<!foo.*)bar/moo/s;
将会
s/^(?:(?!foo).)*Kbar/moo/s;
因为
(?:(?!STRING).)*是
STRING为
[^CHAR]*是
CHAR。
如果您只是匹配,则可能甚至不需要
K。
/foo.*bar/s/^(?:(?!foo).)*bar/s
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)