Mailinglisten-Archive |
Hallo Michael. Michael.Glaser at spb.de wrote: > Ich bekomme Infromationen von Konponenten die wie folgt heissen: AxxBCyy. > Dabei ist xx ein Element der Zahlen 61,63,65,71,73,81,84. Fuer jedes xx > kann unter yy folgender Wert stehen: 25,35,45,55. D.h. ich habe Komponenten > der Art A61BC25, A61BC35, A61BC45, A61BC55, A63BC25, A63BC45 .... , > A84BC45, A64BC55. (Fuer xx koennen nur die angegebenen Werte vorkommen, yy > hingegen gilt (leider) diese Beschraenkung nicht). > > Nachdem dieses Problem einfach nach einem RegExp schreit, wollte ich es > damit auch loesen. Meine Vorschlaege dazu waren.: > - /A..BC[25|35|45|55]/ > - /A..BC["25"|"35"|"45"|"55"]/ > - /A\d\dBC["25"|"35"|"45"|"55"]/ > > Weiss jemand von Euch einen Rat oder die richtige RegExp? Ja, lass die eckigen Klammern weg und ersetzte sie durch runde. Eckige Klammern "makieren" eine Klasse von Zeichen. /A(61|63|65|71|73|81|84)BC(25|35|45|55)/ <code> $arr = array (/* RICHTIG */ 'A61BC25', 'A61BC35', 'A61BC45', 'A61BC55', 'A63BC25', /* FALSCH */ 'AXYBCD', 'A100BC222'); foreach ($arr as $value) { if (preg_match("/A(61|63|65|71|73|81|84)BC(25|35|45|55)/", $value)) { echo $value.' ist gueltig<br/>'; } else { echo $value.' ist nicht gueltig<br/>'; } } </code> Viele Grüße, Alex
php::bar PHP Wiki - Listenarchive