Hallo zusammen!
Ich bin (mitlerweile verzweilend) auf der Suche nach dem passenden regulärem Ausdruck für folgenden String:
Länge:
30 Zeichen
Form:
Der String ist in mehrere Teile aufgeteilt:
Teil 1:
Buchstaben zwischen K-Z
Teil 2:
Buchstaben zwischen A-J
Teil 3:
Buchstaben zwischen K-Z
Teil 4:
Buchstaben zwischen A-J
Teil 5:
Buchstaben zwischen K-Z
Teil 6:
Buchstaben zwischen A-J
Teil 7:
Buchstaben zwischen K-Z
Also immer im Wechsel K-Z und A-J.
Damit man sich das Ganze evtl etwas besser vorstellen kann, hier mal ein Beispiel:
UZNWBBJAEAAHHDUVWWCBRWQQDCZKOP
Hier sind:
Teil 1:
UZNW
Teil 2:
BBJAEAAHHD
Teil 3:
UVWW
Teil 4:
CB
Teil 5:
RWQQ
Teil 6:
DC
Teil 7:
ZKOP
Das Problem ist, wie man (hoffentlich) erkennen kann, dass die einzelnen Teile unterschiedlich lang sind und bis zu 10 Zeichen lang werden können (eine Lösung mit substr () kommt also nicht in Frage!).
Meine bisherige Lösung:
Ausgabe ist natürlich "klappt nicht!"!
Wichtig ist mir dabei, dass im Array $arr die A-J-Felder enthalten sind.
Wichtig ist außerdem, dass der String dem regulärem Ausdruck entsprechen muss. D. h. dass wenn A-J-Abschnitte zu lang, zu oft o. ä. vorkommen, darf der String nicht als richtig bewertet werden!
Ich hoffe ich konnte mein Problem klar verdeutlichen und ihr mir helfen!
Danke im voraus
Ich bin (mitlerweile verzweilend) auf der Suche nach dem passenden regulärem Ausdruck für folgenden String:
Länge:
30 Zeichen
Form:
Der String ist in mehrere Teile aufgeteilt:
Teil 1:
Buchstaben zwischen K-Z
Teil 2:
Buchstaben zwischen A-J
Teil 3:
Buchstaben zwischen K-Z
Teil 4:
Buchstaben zwischen A-J
Teil 5:
Buchstaben zwischen K-Z
Teil 6:
Buchstaben zwischen A-J
Teil 7:
Buchstaben zwischen K-Z
Also immer im Wechsel K-Z und A-J.
Damit man sich das Ganze evtl etwas besser vorstellen kann, hier mal ein Beispiel:
UZNWBBJAEAAHHDUVWWCBRWQQDCZKOP
Hier sind:
Teil 1:
UZNW
Teil 2:
BBJAEAAHHD
Teil 3:
UVWW
Teil 4:
CB
Teil 5:
RWQQ
Teil 6:
DC
Teil 7:
ZKOP
Das Problem ist, wie man (hoffentlich) erkennen kann, dass die einzelnen Teile unterschiedlich lang sind und bis zu 10 Zeichen lang werden können (eine Lösung mit substr () kommt also nicht in Frage!).
Meine bisherige Lösung:
PHP:
<?php
$string = "UZNWBBJAEAAHHDUVWWCBRWQQDCZKOP";
$arr = array ();
$re = (preg_match ("=(([K-Z]{1,10}([A-J]){1,10}){3,3}[K-Z]{1,10}){30,30}=", $string, $arr) ? "klappt!" : "klappt nicht!");
echo $re;
?>
Ausgabe ist natürlich "klappt nicht!"!
Wichtig ist mir dabei, dass im Array $arr die A-J-Felder enthalten sind.
Wichtig ist außerdem, dass der String dem regulärem Ausdruck entsprechen muss. D. h. dass wenn A-J-Abschnitte zu lang, zu oft o. ä. vorkommen, darf der String nicht als richtig bewertet werden!
Ich hoffe ich konnte mein Problem klar verdeutlichen und ihr mir helfen!
Danke im voraus