在Notepad ++中使用REGEX替换字符串的子字符串

时间:2016-11-21 16:08:57

标签: regex notepad++

我正在使用notepad ++,我想创建一个自动化来替换一些字符串。

在这种情况下,我将处理a href标记。

所以,我将在代码中给出3个代码行示例:

01

<a href="https://url.com" class="logo"><img src="urlurlurlurl" alt=""></a>

02

<a href="https://url.com" class="logo"><img src="urlurlurlurl" alt="">
         </a>

03

<a href="https://url.com"><img src="urlurlurlurl" alt=""></a>

04

<a href="https://url.com">link</a>

因此,如果我想在所有4个案例中替换上面的完整a href标记,我会使用此标记:<a href(.*?)a>

现在,我试图想办法只替换href标签中的url。

我尝试使用它:

href="(?s)(.*?)"|href ="(?s)(.*?)"

并且它工作正常,因为我还考虑到可能存在空间。

但是现在在替换窗口中我必须包含href=""

enter image description here

有没有办法让它搜索a href标签,然后替换它的特定子字符串?

我想知道,因为有些情况下,我有其他标签包含网址,我想替换它。但是,引号(“string”)中包含的所有字符串的通用替换都不会很好,因为我不会替换所有字符串。

1 个答案:

答案 0 :(得分:1)

您可以使用否定类来匹配href之前和之后的所有内容,

(a[^>]*href\s*=\s*")[^"]*

替换为捕获组$1REPLACE_STRING

Regex Demo

它的作用是什么?

  • a[^>]*匹配a后跟关闭>以外的任何内容。
  • href\s*=\s*"匹配href="。直到这里被捕获在第1组。
  • [^"]*匹配"以外的任何内容。这将形成您要替换的网址。