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