Hi,
fanrpg hat geschrieben:Code: Alles auswählen
$str = preg_replace('/\[url\]([^a-z_+,.#%0-9:\/-])\[\/url\]/is', '[url]\1[/url]', $str); // Secure the [url] Tag!
Was willst du damit bezwecken?
fanrpg hat geschrieben:Demnach ist ja der erste Ja Konform und der 2. Nicht, oder täusche ich mich da?
Weder der eine noch der andere String ergeben für den regulären Ausdruck ein Wahr.
1.) In einem regulären Ausdruck steht der Punkt für jedes beliebige Zeichen, wenn du in einer Auswahl nur den Punkt meinst, dann musst du ihn mit \ schützen also:
. - findet jedes Zeichen
\. - findet nur einen Punkt
2.) Ein ^ als erstes Zeichen in den eckigen Klammern verneinen die Zeichenauflistung, Bsp.:
[^a] - findet jedes Zeichen, dass kein a ist
Dein Code oben (vereinfacht) enthält folgendes: [^.] Unter Berücksichtigung von 1.) und 2.) was willst du damit erreichen?
3.) Dein regulärer Ausdruck sucht genau ein Zeichen (nicht mehr und nicht weniger) zwischen [ url] und [ /url], dass nicht gleich a-z usw. ist. Sind zwischen den url's mehr als ein Zeichen vorhanden, dann wars das schon. Wenn du mehr als ein Zeichen zulassen willst, dann musst du das auch angeben.
Du solltest dich eventuell mal ein bischen in die Materie einlesen.
Grüße
MagMo