У меня есть такие строки.

<li><a href="love-and-attitude.html" title="Love and Attitude">Love and Attitude (24)</a></li>
<li><a href="paint-and-gain.html" title="Paint And Gain">Paint And Gain (15)</a></li>
<li><a href="mother-and-father.html" title="Mother And Father">Mother And Father (19)</a></li>

Я хочу выделить с помощью регулярного выражения только текст между тегом заголовка и тегом закрытия. Итак, после использования регулярных выражений, я должен был. Желание вывести:

Любовь и Отношение (24)

Краска И Прибыль (15)

Мать и отец (19)

1 ответ1

1

Внимание: это не будет работать, если у вас есть > в любом атрибуте тега <a> или < в тексте, который вы хотите извлечь. В этом случае вы должны использовать вместо этого парсер.

  • Ctrl+H
  • Найдите что: ^\h*<li><a[^>]+>([^<]+).+$
  • Заменить на: $1
  • UNcheck Match case
  • проверить обернуть
  • проверьте регулярное выражение
  • НЕ ПРОВЕРИТЬ . matches newline
  • Заменить все

Объяснение:

^           # beginning of line
  \h*       # 0 or more horizontal spaces
  <li><a    # literally
  [^>]+     # 1 or more any character that is not >
  >         # literally >
  (         # start group 1
    [^<]+   # 1 or more any character that is not <
  )         # end group 1
  .+        # 1 or more any character
$           # end of line

Замена:

$1          : content of group 1 (i.e. the text you want)

Результат для данного примера:

Love and Attitude (24)
Paint And Gain (15)
Mother And Father (19)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .