regular expressions: bis zum Zeilenende $
-
- ConPresso-User
- Beiträge: 72
- Registriert: 04.04.2009 20:01
- Hat sich bedankt: 29 Mal
- Danksagung erhalten: 3 Mal
regular expressions: bis zum Zeilenende $
Kennt sich jemand mit regular expressions sehr gut aus?
Oftmals habe ich Text, bei dem ich ab einem Suchstring bis zum Zeilenende löschen möchte, also zB:
....http://www.blab.de/">blab.....
....http://www.blub.de/">blub.....
Nun möchte ich suchen nach
">
und ab da löschen.
Zeilenende = $
Wer weiß, wie das geht?
Oftmals habe ich Text, bei dem ich ab einem Suchstring bis zum Zeilenende löschen möchte, also zB:
....http://www.blab.de/">blab.....
....http://www.blub.de/">blub.....
Nun möchte ich suchen nach
">
und ab da löschen.
Zeilenende = $
Wer weiß, wie das geht?
-
- Handbuchversteher
- Beiträge: 7381
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 938 Mal
Da das mit HTML nicht geht habe ich das Thema zu "PHP" verschoben.
Für Deinen Zweck kannst Du auf Reguläre Ausdrücke verzichten und die "normalen" PHP-Funktionen wie substr und strpos benutzen.
$string = "....http://www.blab.de/">blab.....";
$suche = '">';
$anfang = substr($string,0,strpos($string, $suche));
da Du "> mit drin haben willst muß die Länge dieser Zeichen noch dazugerechnet werden, also
$anfang = substr($string,0,strpos($string, $suche)+strlen($suche));
oder einfach angehängt
$anfang = substr($string,0,strpos($string, $suche)).$suche;
siehe
http://de.php.net/manual/de/function.substr.php
http://de.php.net/manual/de/function.strpos.php
ungetestet...
_______
Wenn es denn regexp sein müssen dann vielleicht
$string = "....http://www.blab.de/">blab.....";
$suche = '">';
$teile = preg_split ("/".preg_quote($suche)."/", $string);
$anfang = $teile[0].$suche;
Für Deinen Zweck kannst Du auf Reguläre Ausdrücke verzichten und die "normalen" PHP-Funktionen wie substr und strpos benutzen.
$string = "....http://www.blab.de/">blab.....";
$suche = '">';
$anfang = substr($string,0,strpos($string, $suche));
da Du "> mit drin haben willst muß die Länge dieser Zeichen noch dazugerechnet werden, also
$anfang = substr($string,0,strpos($string, $suche)+strlen($suche));
oder einfach angehängt
$anfang = substr($string,0,strpos($string, $suche)).$suche;
siehe
http://de.php.net/manual/de/function.substr.php
http://de.php.net/manual/de/function.strpos.php
ungetestet...
_______
Wenn es denn regexp sein müssen dann vielleicht
$string = "....http://www.blab.de/">blab.....";
$suche = '">';
$teile = preg_split ("/".preg_quote($suche)."/", $string);
$anfang = $teile[0].$suche;
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
- Handbuchversteher
- Beiträge: 7381
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 938 Mal
Na gut. Mein Texteditor (EditPlus) kommt mit
Find: (.+">).*
Replace: \1
gut zurecht.
Find: (.+">).*
Replace: \1
gut zurecht.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
- ConPresso-Entwickler
- Beiträge: 1748
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 81 Mal
- Danksagung erhalten: 133 Mal
Hi,
Das hier sollte reichen:
">.*$
. steht für ein beliebiges Zeichen, * dafür, dass dieses Zeichen keinmal oder beliebig oft vorkommen darf und $ für das Zeilenende.
Wenn Du hinter dem > ein * machst, muss das > Zeichen nicht vorkommen. Dann wird also evtl. auch nur ab einem " gelöscht.
Balu
Das hier sollte reichen:
">.*$
. steht für ein beliebiges Zeichen, * dafür, dass dieses Zeichen keinmal oder beliebig oft vorkommen darf und $ für das Zeilenende.
Wenn Du hinter dem > ein * machst, muss das > Zeichen nicht vorkommen. Dann wird also evtl. auch nur ab einem " gelöscht.
Balu
Bartels.Schöne
ConPresso Support & Development
ConPresso Support & Development
-
- ConPresso-User
- Beiträge: 72
- Registriert: 04.04.2009 20:01
- Hat sich bedankt: 29 Mal
- Danksagung erhalten: 3 Mal
Könnt Ihr mir bitte helfen:
a) Wie würdet Ihr eine Auswahl zwischen 2 Suchstrings definieren?
Also zB einen HTML-Kommentar.
Also am Anfang:
<!--
und Ende:
-->
Das Ende ist klar mit o.g.:
-->.*$
Anfang dann wohl
<!--.*^
Im Textpad kriege ich es hin mit :
^<!--.*$*.-->
Doch im Dreamweaver kommt Syntaxfehler
invalid qualifier:
*.-->
b) Und ist es möglich, solche Suchmuster für Anfang+Ende über mehrere Zeilen zu definieren?
Vielen Dank!
a) Wie würdet Ihr eine Auswahl zwischen 2 Suchstrings definieren?
Also zB einen HTML-Kommentar.
Also am Anfang:
<!--
und Ende:
-->
Das Ende ist klar mit o.g.:
-->.*$
Anfang dann wohl
<!--.*^
Im Textpad kriege ich es hin mit :
^<!--.*$*.-->
Doch im Dreamweaver kommt Syntaxfehler
invalid qualifier:
*.-->
b) Und ist es möglich, solche Suchmuster für Anfang+Ende über mehrere Zeilen zu definieren?
Vielen Dank!
-
- ConPresso-Entwickler
- Beiträge: 1748
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 81 Mal
- Danksagung erhalten: 133 Mal
Das ist nicht so einfach, aber glücklicherweise haben das schon andere vor Dir überlegt
http://ostermiller.org/findhtmlcomment.html
Wobei ich nicht ganz sicher bin, ob das schon ausreicht, aber probier das mal. Sonst solltest Du hier mehr finden:
https://www.google.de/search?q=regular+ ... ml+comment
Balu
http://ostermiller.org/findhtmlcomment.html
Wobei ich nicht ganz sicher bin, ob das schon ausreicht, aber probier das mal. Sonst solltest Du hier mehr finden:
https://www.google.de/search?q=regular+ ... ml+comment
Balu
Bartels.Schöne
ConPresso Support & Development
ConPresso Support & Development
-
- ConPresso-User
- Beiträge: 72
- Registriert: 04.04.2009 20:01
- Hat sich bedankt: 29 Mal
- Danksagung erhalten: 3 Mal
Vielen Dank!
In DW funktioniert der im 1.Link erwähnte 2.Vorschlag:
In DW funktioniert der im 1.Link erwähnte 2.Vorschlag:
Code: Alles auswählen
\<![ \r\n\t]*(--.*--[ \r\n\t]*)\>