Regex - Как я могу выделить текст между некоторыми тегами HTML сразу после указанного тега c? - PullRequest
0 голосов
/ 18 апреля 2020
<dt class="prd_name">                            <!-- 1st line -->
<strong>4 ChitoLite Chitosan 780mg</strong>      <!-- 2nd line -->
                                                 <!-- 3rd line (empty) -->
                                                 <!-- 4th line (empty) -->
                    </dt>                        <!-- 5th line -->

Привет. У меня есть много похожих HTML файлов.

Я бы хотел выделить только текст между тегами <strong> выше с помощью регулярных выражений.

Конечно, есть много <strong> тегов.

Что я хочу, это 4 ChitoLite Chitosan 780 мг между сильными тегами сразу после <dt class="prd_name">.

Как я могу это сделать? Я использую новейшие UltraEdit и Notepad ++.

Любая помощь будет принята с благодарностью.

Это мое регулярное выражение:

^(?s)<dt class="prd_name">(.*?)(?=</strong>)  // This one includes <dt class="prd_name"> and <strong> tags.

^(?s)(?<=<dt class="prd_name">.)(.*?)(?=</strong>) // This one doesn't work.

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Используйте gm флажки регулярных выражений со следующим шаблоном регулярных выражений:

^<dt\s+class="prd_name">\s*<strong>\K.*?(?=<\/strong>)

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

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

Я пытался решить ваш запрос с помощью функции регулярного выражения str.matchAll ().

Считаю, что здесь всегда есть метка, написанная квалифицированным способом, означает "".

const txt =
  '<dt class="prd_name"><strong>**4 -1ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 0ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 1ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 2ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 3ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 3ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 4ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 4ChitoLite Chitosan 780mg**</strong></dt><dt class="prd_name"><strong>**4 ChitoLite Chitosan 780mg**</strong></dt>';
const regExp = /<strong>(.*?)<\/strong>/gi;
const matchAll = [...txt.matchAll(regExp)];
console.log("total length:",matchAll.length);
console.log(matchAll);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...