Регулярное выражение для соответствия текста между тегами HTML - PullRequest
0 голосов
/ 15 апреля 2020

Я должен проанализировать таблицу в HTML коде с помощью Regex. Тем не менее, код для этих таблиц может отличаться, потому что они приходят из разных источников. Но все они имеют общее, что они используют только 2 столбца. Поэтому я хочу сопоставить весь текст, который не заключен в символы «<» и «>».

Более того, я хочу назвать две колонки / группы в Regex.

У меня есть эта строка таблицы, например:

<tr>
  <td width="313" valign="top" style="width:234.9pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
    <p class="MsoNormal"><o:p>Company</o:p></p>
  </td>

  <td width="313" valign="top" style="width:234.9pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt">
    <p class="MsoNormal">TestCompany<o:p></o:p></p>
  </td>
</tr>

Для которой я хочу выбрать только «Company» и «TestCompany» и назвать эти совпадения как «Key» и «Value» соответственно.

Я придумал следующее регулярное выражение:

https://regex101.com/r/09fpbz/2

Однако здесь также выбираются нечетные теги, такие как </o:p> и пробелы / новые строки.

1 Ответ

0 голосов
/ 15 апреля 2020

Если <o:p> всегда как в вашем примере, это будет работать.

<tr>(?:[^<]*<){3}[^>]+>(?<Key>[\w\w]+)(?:[^>]*>){5}(?<Value>[\w\s]+)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...