Как заменить весь текст между двумя фразами регулярными выражениями в Notepad ++ или Textpad? - PullRequest
4 голосов
/ 03 октября 2010

У меня есть около 50 HTML-документов, и мне нужно заменить текст между

<!DOCTYPE

и

<!-- start content -->

на

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

Из того, что я прочитал, Notepad ++ не поддерживает многострочные регулярные выражения, но я подумал, что тоже могу это указать.Я новичок в регулярных выражениях, поэтому мне нужен кто-то, кто скажет мне, как это сделать.Заранее спасибо!

1 Ответ

1 голос
/ 03 октября 2010

У меня не установлены ни Notepad ++, ни Textpad, поэтому я не могу сказать наверняка, но там может работать одно из следующих:

Поиск

  1. <!DOCTYPE[\s\S]*?<!-- start content --> или
  2. <!DOCTYPE.*?<!-- start content --> с установленным параметром «Точка соответствует новой строке» или
  3. (?s)<!DOCTYPE.*?<!-- start content -->

и замените его на <?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 -->

...