Сопоставить значения в парах из HTML, используя RegEx - PullRequest
0 голосов
/ 23 января 2019

Мне нужно использовать Regex только для извлечения следующего вывода:

  • Совпадение 1: (группа 1: упакованное количество) (группа 2: 1)
  • Совпадение 2: (группа 1: ширина) (группа 2: 14,7 см)

С учетом следующего ввода:

<li>
  <div class="col-3"> Packaged Quantity </div>
  <div class="col-5"> 1 </div>
</li>
<li>
  <div class="col-3"> Width </div>
  <div class="col-5"> 14.7 cm </div>
</li>

До сих пор я пытался использовать:

(?<=class=\"col-3\">)[^<]+|(?<=class=\"col-5\">)[^<]+

Это дает мне 4 разных матча. Но я хочу два матча, с двумя группами в каждом матче. Я знаю, что мог бы использовать xpath, чтобы сделать то же самое, но я ограничен в использовании Regex для некоторых ограничений, которые я не смогу комментировать.

1 Ответ

0 голосов
/ 23 января 2019

Вы можете сопоставить col-3"> в начале, затем захватить символы не < для первой группы, сопоставить </div> с последующими не > символами и снова захватить символы не < для вторая группа:

col-3">([^<]+)<\/div>[^>]+>([^<]+)

https://regex101.com/r/YAZFvV/1

(тем не менее, если это вообще возможно, было бы лучше использовать правильный HTML-парсер для такого рода вещей)

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