Есть ли способ взять несколько слов в одно регулярное выражение

Рейтинг: -1Ответов: 1Опубликовано: 31.01.2023

Паршу топ 250 фильмов из поиска фильмов, я хочу взять все основные данные (название, год и т.д.) в одном регулярном выражении. Вот html-код:

<span class="styles_mainTitle__IFQyZ styles_activeMovieTittle__kJdJj" data-tid="4502216a">Зеленая миля</span></div><div class="desktop-list-main-info_secondaryTitleSlot__mc0mI"><span class="desktop-list-main-info_secondaryTitle__ighTt">The Green Mile</span><span class="desktop-list-main-info_secondaryText__M_aus">, <!-- -->1999, 189&nbsp;мин.</span>

Регулярное выражение: String regExp = "((?<=4502216a.>)(.*?)(?=<))|((?<=<!-- -->)(.*?)(?=<))"; но как я понимаю "|" принимает либо то, либо это, есть ли символ, который ищет сразу оба элемента

Ответы

▲ 0Принят

Один из простых вариантов. Находим некие ключевые сочетания, такие как mainTitle_, потом между ними и искомым текстом ставим подвыражение .+? - последовательность любых символов с ленивым квантификатором, далее забираем группу как последовательность любых символов, кроме <. С остальными группами то же самое.

mainTitle_.+?">([^<]+).+?secondaryTitle_.+?">([^<]+).+?secondaryText_.+?->([^<]+)

Демо