在记事本++中使用正则表达式替换文本

时间:2019-01-25 02:25:38

标签: regex notepad++

我正在尝试使用Notepad ++对大量文件进行以下更改。

在替换之前,我有以下文字

<img src ="wsg://iDSGFQ">
<img src ="wsg://iSTACK">
<img src ="wsg://iOVERFLOW">

替换后,我希望得到以下结果

<img src ="http://localhost/images/DSGFQ.jpg">
<img src ="http://localhost/images/STACK.jpg">
<img src ="http://localhost/images/OVERFLOW.jpg">

我可以使用哪种Regex表达式转换文本?

3 个答案:

答案 0 :(得分:0)

对于您的确切示例,您可以执行以下操作:

Find: (<img src =")[^"]*(">)
Replace : $1http://localhost/images/DSGFQ.jpg$2

说明:

 - (<img src =") is Group capture to $1
 - [^"]* is the link we want to replace with
 - (">) is Group capture to $2

因为这是HTML,所以您可能想添加更多可选空间,如下所示:

<img   src =   "wsg://iDSGFQ"  >

您可以使用以下代码替换上面的代码:

Find: (<img\s+src\s+=\s+")[^"]*("\s+>)
Replace : $1http://localhost/images/DSGFQ.jpg$2

其中\ s +是空格(大于零的空格)

答案 1 :(得分:0)

如果DSGSQ是您问题中可变的部分(请参阅问题下方的我的评论),

可能的正则表达式是

查找:

(<img src ="wsg://i)([^"]*)(">)

替换:

<img src ="http://localhost/images/$2.jpg">

答案 2 :(得分:0)

您可以尝试以下模式:(<img.+src ?=")[^/]+\/([^"]+) 和替换模式:(\1)http:\/\/localhost\/images(\2)

请注意,http:\/\/localhost\/images已被编码。另外,(\ 1)表示替代第一捕获组,类似地(\ 2)表示替代第二捕获组。

模式说明:

(<img.+src ?=")匹配<img和所有字符,直到src,匹配src,后跟0或1个空格*,并用双引号引起等号,存储在第一个捕获组中。

[^/]+-匹配一个或多个字符,直到\,它们与\匹配一个\/,最后 ([^"]+)匹配一个或多个与双引号不同的字符,并将其存储在第二个捕获组中。