marabunta
Goto Top

Regex zeichen am Ende

Hallo,

ich brauche den value und muss dafür noch die Zeichen am Ende erfassen.

Regex:
.*value="  

<input class="thatclass" style="border: 0px currentColor; border-image: none; text-align: center; font-weight: bold;" type="text" size="35" value="Ata Tata Baba  [3834]"> 

Was noch nicht mit der Regex matcht, ist
">  
am Ende, wie bekomme ich das auch erfasst?
Danke

Gruß

Content-Key: 572091

Url: https://administrator.de/contentid/572091

Printed on: April 21, 2024 at 02:04 o'clock

Member: filippg
Solution filippg May 15, 2020 updated at 22:12:13 (UTC)
Goto Top
Hi,

ich bin mir nicht ganz sicher, was du meinst.
Aber 'value="(?<yourValue>[^"]*)' liefert dir eine Caputure Group "yourValue" mit dem Wert "Ata Tata Baba [3834]"
Zum ausprobieren: https://regex101.com/r/YSvqfG/1

Grüße

Filipp

Edit: da hatte sich ein . zu viel reingeschlichen...
Member: Marabunta
Marabunta May 15, 2020 at 23:50:16 (UTC)
Goto Top
Im Grunde genau das, ich brauche nur den Wert
Mitglied: 144260
144260 May 16, 2020 updated at 05:32:27 (UTC)
Goto Top
Zitat von @Marabunta:

Im Grunde genau das, ich brauche nur den Wert
Den reinen Wert ohne die Nutzung von Submatches bekommst du so
(?<=value=")[^"]*  
Member: filippg
filippg May 17, 2020 at 22:28:08 (UTC)
Goto Top
Die Weiterverarbeitung ist oft einfacher, wenn man als nur das Captured, was man auch will. Definitiv ein großer Vorteil der Variante mit Lookbehind.

Allerdings sind Look* relativ aufwändig für die Engine. Regex101 gibt oben rechts die Anzahl der Berechnungsschritte an. Die mit Positive Lookbehid kommt auf 304, die von mir genannte auf 11. Und die mit Lookbehind wird um so aufwändiger, je mehr Zeichen nach dem Value noch folgen (es damit aus einer 3kb-Website herauszuziehen wäre tatsächlich keine gute Idee...)

Grüße

Filipp