Исключить определенную строку с помощью регулярного выражения

#javascript #regex

#javascript #регулярное выражение

Вопрос:

Хотите исключить конкретную строку «//2» из элемента выбора. <%— //1 —%>

 <%-- //1
//1 --%>

<%-- //1
//1
//1 --%>

//2

<%-- //1 --%>

<%-- //1 //1 --%>

//3
  

С помощью JavaScript, вот регулярное выражение: (?<=<%-{2}[wW]*?)//(?=[wW]*?-{2}%>)

Я нашел много способов, но ничего не вышло. Может ли у кого-нибудь быть хорошая идея исправить это?

Комментарии:

1. Здесь, чтобы проверить регулярное выражение: regex101.com/r/qD5Yzc/5

Ответ №1:

Вы могли бы сопоставить открытие <%-- , а затем сопоставлять до тех пор, пока не столкнетесь // без сопоставления либо <%-- , либо --%>

Затем сделайте то же самое после сопоставления // снова.

В Javascript вместо использования [wW] вы также можете использовать [^] .

 (?<=<%--(?:(?!<%--|--%>)[^])*)//(?=(?:(?!<%--|--%>)[^])*--%>)
  

Демонстрация регулярных выражений

Комментарии:

1. Извините, что прерываю. Как выглядит регулярное выражение Python?

2. @Arno Если вы хотите использовать квантификатор * в позитивном взгляде назад, вы могли бы использовать модуль PyPI для регулярных выражений вместо re . Смотрите этот пример кода