M-x re-builder
твой друг. И это привело меня к этому регулярному выражению:
"<p>\\(.\\|\n\\)*</p>"
, который является строковой версией
<p>\(.\|^J\)*</p> ;# where you enter ^J by C-q C-j
И это работает для меня, когда я повторяю поиск вперед, но не тогда, когда я делаю 'query-replace-regexp
. Не уверен, почему ...
Теперь, когда вы делаете 're-search-forward
(он же C-u C-s
), вы можете набрать M-%
, который предложит вам заменить (начиная с Emacs 22). Таким образом, вы можете использовать это для поиска и замены на приведенное выше регулярное выражение.
Обратите внимание, что приведенное выше регулярное выражение будет совпадать до тех пор, пока last </p>
не будет найдено в буфере, что, вероятно, не то, что вам нужно, поэтому используйте re-builder для создания регулярного выражения, которое приближается к хочу. Очевидно, что регулярные выражения не могут считать круглые скобки, так что вы сами в этом уверены - зависит от того, насколько надежное решение вы хотите.