在notepad ++中多次查找和替换

时间:2014-05-28 19:35:36

标签: regex notepad++

我在Notepad ++中使用正则表达式来查找<span class="bold">(.*?)</span>并将<strong>\1</strong><span class="italic">(.*?)</span>替换为<i>\1</i>。我必须对很多文档执行此操作,并想知道我是否可以使用单个查找和替换来完成这两个文档。

2 个答案:

答案 0 :(得分:3)

您可以考虑使用sed使用单个命令行完成此任务。以下示例将查找/替换给定目录中所有.txt个文件中的多个模式/替换。

sed -e 's/pattern1/replacement1/g;s/pattern2/replacement2/g' *.txt

要实际替换这些模式,请使用i选项。 -r选项允许扩展正则表达式。

sed -i -re 's!<span class="bold">(.*?)</span>!<strong>\1</strong>!g;s!<span class="italic">(.*?)</span>!<i>\1</i>!g' *.txt

答案 1 :(得分:1)

我想出了一些工作,但它只能<span class="bold">进入<b>而不是<strong>,因为它会从类中捕获一个角色:

<span class="(b(?=old)|i(?=talic))[^"]+">(.*?)<\/span>
<\1>\2</\1>

Demo


<强>解释

<span class="
(             (?# start capture group for new element)
  b           (?# match b...)
  (?=old)     (?# followed by old)
 |            (?# OR)
  i           (?# match i)
  (?=talic)   (?# followed by italic)
)             (?# end capture group)
[^"]+         (?# match non-" characters that were found in lookaheads)
">
(.*?)         (?# lazily capture the contents of the span)
<\/span>

但是你应该能够find/replace in all files使用Notepad ++ ...