![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 30.10.2005
Beiträge: 274
|
Nabend miteinander,
Ich erweitere grade PEAR Text_Wiki um ein paar eigene Rules. Da ich von den reg. Ausdrücken fast keine Ahnung habe, hab ich mir mal die regexps der Text_Wiki Klasse angeschaut und mein eigenes gemacht. So richtig funktionieren tut es aber nicht. So sieht ein Textstring vor dem transform() aus: Code:
Absatz [mypage%image%100%left%Bildbeschreibung] Absatz Code:
[mypage%image%100%left%Bildbeschreibung] erster Absatz. Code:
Absatz [mypage%image%100%left%Bildbeschreibung] Text nächste Absatz PHP-Code:
PHP-Code:
|
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 503
|
also ^ bedeutet Anfang des Textes bzw. mit dem modificator m einer Zeile.
/msi sind eben solche "Modifikatoren" und bedeuten, dass der regex zeilenweise verwendet wird (m), bei buchstaben nicht nach groß- und kleinschreibung unterschieden wird (i) und der .-operator auch für zeilenumbrüche gilt. im HTML pattern steht (\s|$) dafür, dass entweder ein whitespace (leerzeichen, tab, zeilenumbruch; \s) oder das zeilen- bzw string-ende folgt ($). dein regex müsste so lauten: Code:
/\n\s*\[mypage%image%(\d*)%(left|right|center)%([^\]]*?)\]\s*\n/m regex angepasst. weiteres ausprobieren geht hier ganz einfach *gg*
__________________
Weißt Bescheid - Scheiß wie weit Geändert von $traight-$hoota (04.11.2006 um 11:19 Uhr). Grund: falscher regex |
|
|
|
|
|
Nach oben #3 |
|
Erfahrener Benutzer
Registriert seit: 30.10.2005
Beiträge: 274
|
Danke Straight für die Hilfe. Der Regex Tester ist ja garnicht schlecht. Leider hab ich bei meinem Post einen Fehler gemacht und meinen Ergebnis String gepostet, der nach einem erfolgreichen Matching gebaut wird. Jedenfalls hat sich das Problem ein wenig verändert und da hänge ich. Dein Link zum getesteten regex ist schon ähnlich gut, aber das ist möglicherweise ein Problem was im nächsten Schritt vielleicht passieren wird. Egal hier mal etwas:
Code:
[mysite:image:230|left] Absatz [mysite:image:260|right] Das ist ein [mysite:image:20|left] Absatz Absatz [mysite:image:290|center] Ich habe deinen regex angepasst aber er findet nur die Vorkommen die von zwei Absätzen eingekesselt sind. Die Stücke am Datei Anfang und Ende soll er aber auch finden. Das Stringstück innerhalb eines Absatzes wird ignoriert das stimmt. Vielleicht kannst du was noch dran machen: http://www.regex-tester.de/regex_20061104144034.html |
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 503
|
Code:
(?:\n|^)\s*\[mysite:image:(\d*)\|(left|right|center)\]\s*(?:\n|$)
__________________
Weißt Bescheid - Scheiß wie weit |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Regexp umstellen von " auf ' bei preg_match_all | dago | PHP-Programmierung | 8 | 02.02.2007 21:33 |
| Werte in einen Regexp einsetzen. | ex³ | PHP-Programmierung | 6 | 02.02.2007 07:27 |
| regexp Datums-Vervollständigung | ex³ | PHP-Programmierung | 10 | 12.02.2006 16:16 |
| [PHP] Regexp und die Gierigkeit | CIX88 | Tutorials | 0 | 29.01.2006 13:36 |
| [MySQL] REGEXP Problem | Jay | Datenbanken | 3 | 27.12.2005 13:52 |