Как избежать повторения внутри регулярного выражения при использовании оператора ИЛИ? - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть рабочее регулярное выражение здесь , которое извлекает нужные мне значения. Выглядит это так:

(?<=<dd class="info-table__value">)\d*\s\€.*(?=<\/)|(?<=(?>Energialuokka|Rakennusvuosi)<\/dt>\n\t{6}<dd class="info-table__value">|Tulevat remontit<\/dt>\n\t{6}<dd class="info-table__value">|Tehdyt remontit<\/dt>\n\t{6}<dd class="info-table__value">).*(?=<\/)

Это все случаи внутри второго взгляда

 (?>Energialuokka|Rakennusvuosi)<\/dt>\n\t{6}<dd class="info-table__value">
 Tulevat remontit<\/dt>\n\t{6}<dd class="info-table__value">
 Tehdyt remontit<\/dt>\n\t{6}<dd class="info-table__value">

Как видите, все они заканчиваются одной строкой

<\/dt>\n\t{6}<dd class="info-table__value">

Есть ли способ упростить эту формулу, избегая повторения одной и той же строки снова и снова? Я использовал атоми c group т.е. (?> ...) для одного из случаев, но это работает только в том случае, если элементы внутри него имеют одинаковую длину.

Есть идеи? Спасибо!

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