Я протестировал это в jEdit (который также написан на Java, как NetBeans, но у меня нет доступа к NetBeans в настоящее время). Попробуйте это для шаблона регулярных выражений:
(?<=<section>)(\s*)<p><b>([^<]+)</b></p>
с этим используется в качестве замены:
$1<h2>$2</h2>
Шаблон регулярного выражения говорит «соответствует последовательности, которой предшествует <section>
и которая начинается с любого количества пробелов (которое сохраняется как группа захвата 1), а затем содержит <p><b>
за которым следует по крайней мере один символ, который не является <
(и сохраните эти символы как группу захвата 2) и заканчивается на </b></p>
".
Шаблон замены просто говорит «начните с пробела из группы захвата 1, затем выведите <h2>
затем символы из группы захвата 2, которые были найдены внутри элемента <b>
, затем выведите </h2>
». Захват и вывод пробела означает, что ваш новый элемент h2 будет начинаться с тех же новых строк и вкладок, что и элемент p, поэтому любое красивое форматирование не будет разрушено этим изменением.
Просто имейте в виду, что регулярное выражение не может знать, где оно находится относительно структуры DOM, поэтому оно не может знать, правильно ли использовать h1, h2, h3, h4 и так далее. Но если вам когда-нибудь понадобится <h2>
тогда попробуйте.
(На самом деле, если вы используете HTML5, тогда вы можете начинать каждый новый элемент раздела с элемента <h1>
или с любого другого начального номера на самом деле, и для автоматической обработки уровней заголовка требуется совместимый браузер.)