Reguläre Ausdrücke
Draganis
- php
Hy,
ich hab keine Ahnung von Regulären Ausdrücken und wag mich jetzt zum ersten Mal da rein...
jetzt bekomm ich sofort nen Befehl an den Kopf geworfen und komm damit nicht zurecht...
Vielleicht kann mir jemand von euch dabei helfen....
Das ist der Befehl...
eregi("^/(msg|to)[:space:][:space:]$", $M, $Cmd)
der sucht nach was das ungefähr so aussehen soll:
/msg Username message
jetzt soll er aber nach
/msg Username: message
suchen
Wie bekomm ich das denn hin....
Ich versteh ja den eregi-Befehl nichmal richtig...
Hab schon ein PHP-Buch zu rate gezogen und auch php.net gefragt, doch nirgends hab ich was richtig gutes gefunden, was mir half...
Was ich weiss, iss dass er das Array $Cmd mit 4 sachen füllt...
$Cmd[0] = kompletter String
$Cmd[1] = /msg
$Cmd[2] = Username
$Cmd[3] = message
Was ich noch weiss, ist daß die 3 Strings durch Leerzeichen ([[:space:]]) getrennt sind...
Nur stellt sich mir die Frage, wo und wie ich den : einsetzen muss, damit ich das gewünschte ergebnis bekomm...
Thnx
Sven
Joho,
[...]
/msg Username message
[...]
/msg Username: message
preg_match("!/^(\S+)\s+(\S+):?\s(.+)$!",$var,$regs);
$regs[0] -> string
$regs[1] -> /<command>
$regs[2] -> <Username>
$regs[3] -> <messi>
Zur Erklaerung:
Der String soll mit alles ausser einem Whitespace (\S - \S ist die Negierung zu \s ->
alles, ausser Whitespaces) beginnen (^) - so haben wir das Kommando gematcht. Darauf folgen
sollen wieder Whitespaces (\s), gefolgt von nicht-Whitespaces (\S) und einem oder keinem (?)
Doppelpunkt - so matchen wir den Usernamen. Als letztes noch die Messi. Die Messi ist vom
Usernamen getrennt durch ein(!) Whitespace (\s) und danach folgen beliebige Zeichen (.). Das
Plus steht jeweils fuer mindestens ein, maximal unendlich Zeichen.
Hab schon ein PHP-Buch zu rate gezogen und auch php.net gefragt, doch nirgends hab ich
was richtig gutes gefunden, was mir half...
Mastering Regular Expressions kann ich empfehlen.
Gruss,
CK
http://wwwtech.de
--
s s^s<DATA>se;s (([^\s]))(ord($1)%2?
chr(ord($1)-5):chr(ord($1)-3))sieg;s s^s$_see;
__END__
uwlsy%*Sr%kqdphv%yr%AFN4%dy%zzzyhfm3ihC*1'as'>