 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.02.2007, 17:17 Titel: PHP Regex |
|
|
Hi, ich habe ein kleines problem...
ich arbeite zur zeit mit regex (regulären ausdrücken) in php und weiß nicht so ganz weiter...
Code: |
$urlex_regex = "\[url=(.+?)\](.+?)\[\/url\]";
$text = preg_replace_callback("/$urlex_regex/i", "bbcode_urlex", $text);
|
wenn zwischen [url=...] und [/url] ein zeilenumbruch ist, wird der text nicht verarbeitet. wie kann ich das problem lösen?
(ich weiß, url is jetzt ein blödes beispiel, aber das war halt grad aufm bildschirm ) _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 20.02.2007, 01:15 Titel: |
|
|
schneid einfach die newlines raus..
$text=str_replace("\r", "\r\n", preg_replace_callback("/$urlex_regex/i", "bbcode_urlex", str_replace(array("\r\n", "\n"), "\r", $text)));
dürfte gehen.. könnte durchaus ne bessere variante geben, eventuell kannst du mit irgendwelchen modifiern im regex das ganze noch so anpassen, das . auch newlines matcht, aber wo ich das irgendwann mal (wenn auch nur halbherzig) versucht hatte gings irgendwie nicht, ich hatte es dann so gelöst.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 20.02.2007, 02:16 Titel: |
|
|
\r\n wäre ja auch ein zeilenumbruch, ich hatte auch zurerst diese dreckige variante angewendet (\n durch \b ersetzt), aber inzishcen ahb ich rausgefundne, dass man mit "(?s)(.*?)" auch zeilenumbrüche berücksichten kann. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 20.02.2007, 18:05 Titel: |
|
|
sollte es dir nicht aufgefallen sein, ich hab zwei str_replace. Einmal werden alle Zeilenumbrüche (\r, \n, \r\n) durch \r ersetzt, nur \n stört den regex, und nach dem regex wird aus allen \r dann wieder ein \r\n, vollständiger zeilenumbruch. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 20.02.2007, 18:20 Titel: |
|
|
is trotzdem ne dreckige variante hab ja zum glück nun den richtigen ausdruck gefunden  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|