Mailinglisten-Archive |
Sebastian Mendel wrote: > ANGEL Harald schrieb: >> Hallo phpbar-Mitglieder! >> >> Ich probier seit 1h ein Pattern zu finden, schaffe es aber nicht... >> Obiwan, ihr seid meine letzte Hoffnung... ;-) >> >> Mein String schaut entweder so: >> [Bild:123] oder so: [Bild:123,100] aus. >> Parameter 1 ist die Bildid. >> Der optionale 2te Param. Ist die Weite. >> >> Ich will nach dem preg_match_all die Parameter auf einem Array stehen >> haben. >> >> Ich versuche das so: >> $search = '#\[Bild:([0-9]+)\]|\[Bild:([0-9]+),([0-9]+)\]#'; > > '#\[Bild:([0-9]+)(?:,([0-9]+))?\]#'; > > >> Wo ist mein Fehler? > > der oder-Operand '|' müsste in Klammern einschließlich der zu suchenden Strings, > > '#\(?:[Bild:([0-9]+)\]|\[Bild:([0-9]+),([0-9]+)\])#'; Wenn schon dann auch Syntaktisch korrekt: (?:\[Bild:([0-9]+)\]|\[Bild:([0-9]+),([0-9]+)\]) Aber es geht auch ohne die Klammer. Die bräuchtest du nur für ein Subpattern, aber hier wird der regex ja auf den kompletten String angewendet, da macht es keinen Sinn das komplette Pattern zum Subpattern zu erklären :-). > > oder eben wie oben gezeigt Yannik
php::bar PHP Wiki - Listenarchive