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

Match only certain part instead of whole line

我有一堆这样的文字:

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="

对于那些 link 没有

href="../media/

示例将仅匹配:

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

它不会匹配整行,而是匹配 href=" 部分 这样我就可以用 notepad++ 或 powergrep

替换它

我试过了:

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

它不起作用:

regex101

this one work,但是,它匹配整行

任何帮助都会很棒。

你的第二个正则表达式 (^(?!.*..\/media\/).*href=".*$) 已经不远了,但是你选择了整行(因此在 UI 中突出显示),因为 .*.*$.此外,零宽度负前瞻需要放在 之后 您正在寻找的模式。一共 you want:

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

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