Regex: Wählen Sie alle Felder außer Tags aus

436
Just Me

Ich habe diese Art von Reihen.

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

Ich möchte mit Regex nur den Text zwischen Titel-Tag und Schließen-Tag auswählen. Also, nachdem ich Regex benutzt hatte, hätte ich das tun sollen. Die Wunschausgabe:

Liebe und Haltung (24)

Malen und gewinnen (15)

Mutter und Vater (19)

0
In dieser Antwort erhalten Sie einen Hinweis: https://stackoverflow.com/questions/11592033/regex-match-text-between-tags/11592042 Funclineal vor 5 Jahren 0
es ist nicht ganz dasselbe :) Just Me vor 5 Jahren 0

1 Antwort auf die Frage

1
Toto

Achtung: Dies funktioniert nicht, wenn Sie >ein Attribut eines <a>Tags oder <den zu extrahierenden Text haben. In diesem Fall müssen Sie stattdessen einen Parser verwenden.

  • Ctrl+H
  • Finde was: ^\h*<li><a[^>]+>([^<]+).+$
  • Ersetzen mit: $1
  • Deaktivieren Sie die Option "Groß- / Kleinschreibung"
  • Aktivieren Sie die Option Wrap around
  • Überprüfen Sie den regulären Ausdruck
  • NICHT PRÜFEN . matches newline
  • Replace all

Erläuterung:

^ # 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 

Ersatz:

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

Ergebnis für gegebenes Beispiel:

Love and Attitude (24) Paint And Gain (15) Mother And Father (19) 
SUPER, vielen Dank, TOTO !! Just Me vor 5 Jahren 0