Willkommen in der Webstatt Zum Webstatt Blog und Stories
Franky Franky am 01.08.06 11:21

Moin,

hab ein Regex:
#(blog|blogtb)([0-9])-(.*?)#
Der soll das hier matchen:

Quote
blog2-irgend-ein-text

als ausgabe mit preg_match() bekomme ich aber immer nur:
Array (
[0] => blog2-
[1] => blog
[2] => 2
[3] =>
)


warum?

Lg,
Franky

// argh jetzt gehts...ich musste .* statt .*? verwenden...

netcup.de Warum gibt es hier Werbung?
Michael Michael am 01.08.06 16:03

Was ja auch sinnvoll ist, da .*? nach dem kleinsten möglichen Treffer abbricht. Wenn es also am Ende steht, wird nie etwas damit gematcht :)

Dustwolf Dustwolf am 01.08.06 16:34

Müsste dazu nicht ?U genutzt werden? (Ungreedy)

Michael Michael am 01.08.06 16:36

Der Modifier U stellt das Verhalten für den gesamten Regex um, mit einem nachgestellten ? kann ein einzelner Operator umgestellt werden - also +? oder *?

Michael

nuit nuit am 01.08.06 17:56

so mal ne dumme frage...kann das blog2 nich auchmal am ende stehn?

also so wie hier:
irgendein-text-blog2

und nachdem da kein - mehr ist..wird das auch nichtmehr gematched ;) oder ist das nicht möglich

Franky Franky am 02.08.06 00:34

*Doch noch eine Frage hab*

dieser code hier:
if(preg_match('<dies ist ein test>', '/[^0-9a-z_.-äöüß!?\s]/i')) echo 'false';
else echo 'true';


eigentlich sollte der doch false matchen (wegen den "<" und ">"...davon steht ja nix im regex)...der macht aber true...wie kommts?

Michael Michael am 02.08.06 10:18

Dein Regex prüft ja nur, ob mindestens ein Buchstabe NICHT 0-9a-z_.-äöüß!?\s ist

Ich schätze dein ^ ist in die eckigen Klammern gerutscht, oder willst du nicht prüfen, dass der Sring nur aus 0-9a-z_.-äöüß!?\s besteht?

'/^[0-9a-z_.-äöüß!? ]$/i'

Michael

dookie dookie am 03.08.06 12:13

preg_match($suchmuster, $zeichenkette, $treffer);
Man beachte die Reihenfolge der Argumente ;)

Edit: Ok, mit der anderen Reihenfolge gehts auch nicht. ;) Du musst nämlich das - nach dem Punkt escapen, denn das Minus ist ein Metazeichen in einer Charakterklasse und muss somit escaped werden.

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt