Regex для получения текста внутри текста и игнорирования текста в формате <xxx> - PullRequest
0 голосов
/ 04 апреля 2019

Представьте, что у меня есть следующий текст: Это текст

Если я хочу получить только "Это текст", то регулярное выражение будет:

(?<=\<tag\>).*(?=\<\/tag\>)

Представьте себетеперь, когда текст выглядит примерно так:

<tag> <Arial>This is a text<Arial></tag>

Каким будет теперь регулярное выражение, которое получает «Это текст» и игнорирует все остальное?Слово Arial не может быть фиксированным и может меняться.

Заранее спасибо.

1 Ответ

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

Это зависит от вкуса регулярного выражения.Если ваши регулярные выражения разрешают обратных ссылок , вы можете указать:

\<(\w+)\>([^<>]*)\<\/\1\>

и \1 будет ссылаться на содержимое (\w+).

. В этом случаетекст «Это текст» будет сопоставлен группе 2 (см. demo ).

Обратите внимание, что в большинстве ароматов вы не можете использовать + внутри lookbekind.

В противном случае вы должны быть более широкими и использовать что-то вроде:

(?<=\>)[^<>]*(?=\<)

В любом случае, вероятно, лучшим решением будет использование парсера DOM.

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