PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : auf der suche nach nem regex


feuervogel
03.07.2004, 01:02:30
hallo!

ich bin auf der suche nach einem regex...bei mir hauts als nicht hin...

ich will

www.bla.de

matchen, aber

http://www.blubb.de

oder

ftp://www.blubb.de

nicht!

mein versuch sieht so aus:

$regex = "%(^http://)|(^ftp://)w{3}[.][.-a-zA-Z0-9/]%i";

xabbuh
03.07.2004, 02:51:58
EDIT:
Geht auch mit einem Regex:


$regex='%((^w{3}[.][.a-zA-Z0-9-/]+)|(sw{3}[.][.a-zA-Z0-9-/]+))%i';
$ersatz='<a href="$1">$1</a>';
echo preg_replace($regex, $ersatz, $text);

feuervogel
03.07.2004, 09:53:52
ja, danke, war gestern einfach zu spät...

ist das leerzeichen " " auch im s enthalten?

Progman
03.07.2004, 10:48:41
Original geschrieben von xabbuh
EDIT:
Geht auch mit einem Regex:


$regex='%((^w{3}[.][.a-zA-Z0-9-/]+)|(sw{3}[.][.a-zA-Z0-9-/]+))%i';
$ersatz='<a href="$1">$1</a>';
echo preg_replace($regex, $ersatz, $text);

Wäre folgendes nicht kürzer?

$regex = '%(^|s)w{3}.[a-zd-/.]+%i';


Mal gucken ob das Forum das nicht wieder verunstaltet...

edit: irgendwie ist im forum ein striptslash problem...

xabbuh
03.07.2004, 11:33:03
Original geschrieben von Progman
Wäre folgendes nicht kürzer?

$regex = '%(^|s)w{3}.[a-zd-/.]+%i';


Mal gucken ob das Forum das nicht wieder verunstaltet...

edit: irgendwie ist im forum ein striptslash problem...

Dürfte wohl auch gehen, war wohl gestern ein wenig spät ;-)

xabbuh
03.07.2004, 11:35:05
Original geschrieben von feuervogel
ja, danke, war gestern einfach zu spät...

ist das leerzeichen " " auch im s enthalten?

Ja ist es, siehe tut.php-q.net (http://tut.php-q.net/regex.html):


Das s kommt vom Wort whitespace und matched auf Zeichen, die man auf den ersten Blick nicht sieht. Das sind das Leerzeichen (space, 0x20), der Zeilenumbruch (new line, n = 0x0A), der Wagenrücklauf (carriage return, r = 0x0D), der Seitenvorschub (form feed, f = 0x0C), der Tabulator (t = 0x09) und den Vertikalen Tabulator (vertical tabulator, v = 0x0B). Alle anderen Zeichen werden nicht gematched.

feuervogel
03.07.2004, 12:44:12
ja, nur irgendwie matched der noch nicht so ganz das was ich will...ich probier noch mal etwas rum und melde mich dann...

danke schon mal fürs erste!

feuervogel
03.07.2004, 13:09:43
so, danke für die anregung, das hier funktioniert nun perfekt:

$regex = "%(^|s)w{3}[.]([.a-zA-Z0-9-/]+)%i";