Ansicht:   

#458764

Alfons zur Homepage von Alfons

22.01.2023, 16:11:16

ist hier einer fit mit regulären Ausdrücken? (pc.coding)

Hallo,

ich versuche mit Visual-Studio-Code viele HTML-Dateien anzupassen.
Dazu bräuchte ich einen regulären Ausdruck der alles zwischen zwei Kommentaren löscht:

<!-- BEGIN INSERT -->

Zeile bla bla
Zeile hu la la

bla fasel
<!-- ENDE KOMMENTAR -->

Auch die Anzahl der Zeilen ist variabel.
kann mir einer auf die Sprünge helfen??

Danke
Alfons

#458765

Johann

22.01.2023, 16:36:07
(editiert von Johann, 22.01.2023, 16:38:47)

@ Alfons

ist hier einer fit mit regulären Ausdrücken? (ed)

Theoretisch, ohne das jetzt genau zu wissen an welcher Stelle Du das brauchst, sollte der Regex-Replace eigentlich mit folgendem Muster funktionieren.

<!-- BEGIN INSERT -->.*?<!-- ENDE KOMMENTAR -->

Das .*? zwischen den beiden einschließenden Kommentar-Strings bedeutet "Irgendwas in beliebiger Länge".
Das sollte alles inklusive der beiden Kommentar-Strings und dem dazwischen greifen.

#458767

Alfons zur Homepage von Alfons

22.01.2023, 17:15:44

@ Johann

ist hier einer fit mit regulären Ausdrücken?

Hallo Johann,
damit hat er zwar alle Fundstellen:
<!-- BEGIN INSERT -->.*?

aber damit wieder keine einzige:
<!-- BEGIN INSERT -->.*?<!-- ENDE KOMMENTAR -->

was macht der Punkt??

#458768

Johann

22.01.2023, 17:21:38
(editiert von Johann, 22.01.2023, 17:25:06)

@ Alfons

ist hier einer fit mit regulären Ausdrücken? (ed)

> Hallo Johann,
> damit hat er zwar alle Fundstellen:
> <!-- BEGIN INSERT -->.*?
>
> aber damit wieder keine einzige:
> <!-- BEGIN INSERT -->.*?<!-- ENDE KOMMENTAR -->
>
> was macht der Punkt??

der Punkt steht für "irgendein Zeichen", der Stern für "beliebig viel davon" und das Fragezeichen schaut, ob entweder das Ende des String erreicht ist oder der nachfolgende Ausdruck, in diesem Falle der schließende Kommentartag, gefunden wird. In PHP geht das zumindestens so. Manchmal haben Regex-Parser, je nach Anwendung und wo sie laufen, ihre Eigenheiten. Visual Studio Code kenne ich leider nicht diesbezüglich.
Du kannst probieren, das Fragezeichen wegzulassen. Allerdings bedeutet das im Allgemeinen, dass ohne das Fragezeichen, zumindest in PHP, ein solcher Ausdruck komplett alles vom ersten auftauchen des ersten Kommentarstrings bis zum letzten auftauchen des schließenden Strings entfernen würde. Also auch alles dazwischen, wenn Du von diesen Kommentarblocks mehrere im String hast.

#458771

Alfons zur Homepage von Alfons

22.01.2023, 17:32:14

@ Johann

ist hier einer fit mit regulären Ausdrücken?

OK, das hilft mir schon mal.
Ich probier mal weiter.
schönen Sonntag noch
Alfons

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz