Regex: выбрать все из строки, кроме тегов

322
Just Me

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

<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)

0
Вы можете получить подсказку в этом ответе: https://stackoverflow.com/questions/11592033/regex-match-text-between-tags/11592042 Funclineal 5 лет назад 0
это не совсем то же самое :) Just Me 5 лет назад 0

1 ответ на вопрос

1
Toto

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

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

Объяснение:

^ # 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) 
СУПЕР, СПАСИБО ОГРОМНОЕ, ТОТО !! Just Me 5 лет назад 0

Похожие вопросы