Как найти совпадение по всем тегам с конкретным контентом? - PullRequest
0 голосов
/ 09 апреля 2019

я следую за xml:

<tag>
    ...
</tag>
<tag>
    ...
    content
    ...
</tag>
<tag>
    ...
    content
    ...
</tag>

Я должен сопоставлять только теги с content

Сначала я попробовал это регулярное выражение:

<tag>.*?content.*?<\/tag>

но если есть тег, который не имеет content захватывает слишком много ...

Затем я пытаюсь распознать его, используя следующее регулярное выражение с отрицательным прогнозом:

<tag>.*?(?!<\/tag>).*?content.*?<\/tag>

но это не сработает.

ссылка на онлайн-отладчик регулярных выражений: https://regex101.com/r/ULZVO5/10

1 Ответ

0 голосов
/ 24 апреля 2019

это работает:

<tag>(?:[^<]|<(?!\/tag>))*content.*?<\/tag>

найдено здесь

мой пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...