仅匹配特定部分而不是整行

时间:2018-01-15 08:14:31

标签: regex regex-negation

我有很多这样的文字:

some text <a href="../media/image/aaa.html">aaa</a> some text
some text <a href="aaa.html">aaa</a> some text
some text <a href="bbb.html">aaa</a> some text
some text <a href="../media/ccc.html">aaa</a> some text

如何仅搜索和匹配部分:

href="

对于那些没有的链接

href="../media/

示例仅匹配:

some text <a href="aaa.html">aaa</a> some text
some text <a href="bbb.html">aaa</a> some text

而不是匹配整行,它将匹配 href =&#34; 部分 所以我可以用notepad ++或powergrep

替换它

我试过了:

^(?!.*..\/).*href=".*$

它不起作用:

regex101

this one work,但它匹配整行

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:2)

您与第二个正则表达式(^(?!.*..\/media\/).*href=".*$)并不相同,但由于.*.*$,您选择整行(因此在UI中突出显示)。此外,零宽度负面预测需要在之后放置您正在寻找的模式。总共you want

href="(?!\.\.\/media)

请注意g开关,以确保所有匹配项都匹配,而不仅仅是第一个匹配。