如何在Notepad ++或Textpad中使用正则表达式替换两个短语之间的所有文本?

时间:2010-10-03 02:37:38

标签: regex notepad++ textpad

我有大约50个html文档,我需要替换

之间的文本

<!DOCTYPE

<!-- start content -->

<?php require("header.php"); ?>

从我读过的内容来看,Notepad ++不支持多行正则表达式,但我想我也可以把它放在这个问题上。我是正则表达式的新手所以我需要有人告诉我如何做到这一点。提前谢谢!

1 个答案:

答案 0 :(得分:1)

我既没有安装Notepad ++也没有安装Textpad,所以我不能肯定地说,但下列其中一项可能会在那里工作:

搜索

  1. <!DOCTYPE[\s\S]*?<!-- start content -->
  2. <!DOCTYPE.*?<!-- start content -->设置了“点匹配换行符”选项或
  3. (?s)<!DOCTYPE.*?<!-- start content -->
  4. 并将其替换为<?php require("header.php"); ?>

    这将删除两个短语之间的所有内容(包括短语本身)。如果你不想那样(我不确定你的问题),那么你可能想在<!DOCTYPE之后保留第一行的内容,对吧?所以:

    搜索(<!DOCTYPE[^\r\n]*)[\s\S]*?<!-- start content -->(或(?s)(<!DOCTYPE[^\r\n]*).*?<!-- start content -->等),

    并替换为$1<?php require("header.php"); ?><!-- start content -->