В перспективе Regex, чтобы первый <p>
стал исключением, вы должны определить шаблон, который делает первый <p>
неудачным.Например, если текст перед первым <p>
равен abcxyz
, то есть abcxyz<p>
, то вы будете искать каждый <p>
, которому не предшествует abcxyz
, так что первый <p>
не совпадает.Используя регулярное выражение, оно становится: (?<!abcxyz)<p>
Чтобы последнее </p>
стало исключением, вы должны определить шаблон, который приводит к сбою последнего </p>
.Например, если текст после последнего </p>
равен abcxyz
, то есть </p>abcxyz
, тогда вы будете искать каждый </p>
, за которым не следует abcxyz
, так что последний </p>
не совпадает.Используя регулярное выражение, оно становится: </p>(?!abcxyz)
Хотя JavaScript поддерживает положительный и отрицательный упреждающий просмотр , к сожалению, регулярное выражение JavaScript не поддерживает ни положительный, ни отрицательный просмотр назад .В самом деле, в JavaScript есть некоторые грязные приемы, имитирующие отстранение, однако не все отстающие конструкции можно имитировать.
Таким образом, если возможно, попытайтесь определить шаблон, которыйделает первый <p>
неудачным, но использует отрицательный прогноз.
Чтобы заменить первый <p>
и последний </p>
ничем, вы можете инвертировать логику, которую мы использовали выше, и вы должнывыполните это в отдельном шаге.
Чтобы заменить <br>
, <br />
, <br/>
на \n
, найдите: <br\s*\/?>
и замените на \n
.