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-ID: 572091

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

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

filippg
Lösung filippg 16.05.2020 aktualisiert um 00:12:13 Uhr
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...
Marabunta
Marabunta 16.05.2020 um 01:50:16 Uhr
Goto Top
Im Grunde genau das, ich brauche nur den Wert
144260
144260 16.05.2020 aktualisiert um 07:32:27 Uhr
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=")[^"]*  
filippg
filippg 18.05.2020 um 00:28:08 Uhr
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