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