Regex - извлечение подстрок начинается и заканчивается конкретными шаблонами (разбор HTML)? - PullRequest
0 голосов
/ 24 июня 2019

Я анализирую некоторые хорошо организованные строки (в формате HTML) для извлечения данных.Формат такой (новая строка добавлена ​​для удобства чтения):

<span><h2>Category 1</h2>
<p><strong><u>Entry 1</u></strong></p>
<ul><li>Some Data</li></ul>
<h2>Category 2</h2>
<p><strong><u>Entry 2</span>
<ul><li>Some Data</li></ul>
</span>

Я намереваюсь найти все строки между <h2> и извлечь строки после </h2> в первую очередь.Шаблон поиска - /<h2>Tier.*?<\/h2>(.*?)(<h2>|<\/span>)/g.Но каждая подходящая подстрока точно заканчивается <h2>.Так что следующая категория не будет извлечена, в то время как третий блок категории подходит, потому что есть новый поиск.

Затем я пытаюсь искать подстроки, которые не содержат жадно <g2>.Шаблон h2>Category.*?<\/h2>(^(h2).)*.Это не работает, хотя.

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Попробуйте извлечь это регулярное выражение:

<h2>\K[^<]+

Вот демо

Удачи!

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

Ваш вопрос непонятен и меня так смущает.

Но я думаю, вы хотите это:

<h2>[^<]+<\/h2>(.+?<\/ul>)

Демо: https://regex101.com/r/k16AoN/2

Кроме того, вы должны указать следующее: В чем разница между тегами HTML

. Может быть, вы используете неправильный <span> тег

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