phpbar.de logo

Mailinglisten-Archive

[php] Regular Expressions 1 oder 2 Ergebnisse

[php] Regular Expressions 1 oder 2 Ergebnisse

Yannik Hampe yannik at cipher-code.de
Fre Apr 27 08:34:41 CEST 2007



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