регулярное выражение, которое не соответствует между комментариями HTML - PullRequest
1 голос
/ 15 июня 2019

У меня есть регулярное выражение, которое я хочу соответствовать определенному шаблону.Однако я не хочу, чтобы он соответствовал этому шаблону, если он существует между блоками комментариев HTML

В настоящее время у меня есть:

(?<!<!--)pattern(?!-->)

Однако это работает только тогда, когда шаблон находится точно междублоки комментариев, но не в случае чего-то вроде:

<!-- foo pattern -->

Но если я сделаю:

(?<!<!--.*)pattern(?!-->)

, тогда этот случай не будет работать:

<!-- some commented out stuff --> pattern

Я думаю, если бы я мог выразить (все, кроме ->) *?в негативном взгляде позади это сработало бы, но я не уверен в правильном синтаксисе или если это разрешено.

1 Ответ

0 голосов
/ 15 июня 2019

Полагаю, ваше исходное выражение просто отлично, возможно, с небольшой модификацией, нам может понадобиться выражение, подобное:

(?<=<!--).*pattern.*(?=-->)

Демо

и если мы хотим захватить или не захватить что-нибудь вокруг pattern, это может быть интересно:

(?<=<!--).*(pattern).*(?=-->)
(?<=<!--)(.*pattern.*)(?=-->)
(?<=<!--)(.*)(pattern)(.*)(?=-->)
(?<=<!--)(?:.*)(pattern)(?:.*)(?=-->)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...