RegEx - Möchte nach mehreren wörten suchen

TsEnG

Mitglied
Hallo,

ich habe ein kleines Problem mit RegEx imbezug auf PregMatch.

Undzwar möchte ich in meinem String " $str " nach folgenden Zeichenfolgen suchen:

#F0F805
#FFD553
...

Und dann die erste Zeichenfolge die gefunden wurde ausgeben.

PHP:
preg_match('/(#F0F805)(#FFD553)/',$str,$treffer));
echo $treffer[0];

Nun habe ich mir schon den kopf an php.net und jeglichen anderen RegEx Dokus gebrochen.
Ich glaube das werde ich nie lernen ;) die ganzen durcheinandergeworfenen Zeichen ....


Wäre schön wenn mir wer helfen könnte.

MfG
tsEng
 
preg_match('/#F0F805|#FFD553/',$str,$treffer));

Beachte den Strich in der Mitte, der bedeutet "Alternation" oder anders ausgedrückt ein logisches ODER. Wenn du den Ausdruck wie oben verwendest, wird nach "#F0F805#FFD553" gesucht. Die Klammern sind übrigens überflüssig.
 
sow wie es aussieht möchtest du nach Farbangaben suchen und damit du nicht alle einzeln als oder eingibst müsste es doch so gehen.

$regex = "/\#[0-9A-F]{6}/i";

Erklärung

du suchst nach zeichen die mit # anfangen die Ziffern 0-9 und die Buchstaben A-F enthalten dürfen und prüfst noch ob der gefundene String 6 Zeichen lang ist ({6}). Das "i" zum schluß ist dafür da das er groß klein Schreibung ignoriert.
 
Zurück