Zunächst einmal sind die {1}
s redundant, also ist es wirklich nur:
^[aofdmep][a-z][a-z0-9]{4}a[sidbfkfpo]
Dies ist eigentlich ein ziemlich einfaches Muster ... es geht nur um die ersten 8 Zeichen der Zeichenfolge, und es ist immer eine Zeichenfolge mit fester Länge, sodass Sie möglicherweise eine Tabelle mit allen Permutationen erstellen und dann Folgendes tun können:
WHERE SUBSTR(string_to_match, 1, 8) IN (
SELECT valid_prefixes FROM table_of_things_to_match
)
Leider sind es 7 * 26 * 36 ^ 4 * 9 ... 2,75 Milliarden mögliche Kombinationen, aber immer noch feste Zeichenfolgen, so dass Sie Folgendes tun können:
WHERE SUBSTR(string_to_match, 1, 1) IN ('a','o','f','d','m','e','p')
AND SUBSTR(string_to_match, 2, 1) IN ('a','b','c','d' ... 'z')
AND SUBSTR(string_to_match, 3, 1) IN ('a','b','c','d' ... 'z','0','1' ... '9')
AND SUBSTR(string_to_match, 4, 1) IN ('a','b','c','d' ... 'z','0','1' ... '9')
AND SUBSTR(string_to_match, 5, 1) IN ('a','b','c','d' ... 'z','0','1' ... '9')
AND SUBSTR(string_to_match, 6, 1) IN ('a','b','c','d' ... 'z','0','1' ... '9')
AND SUBSTR(string_to_match, 7, 1) = 'a'
AND SUBSTR(string_to_match, 8, 1) IN ('s','i','d','b','f','k','p','o')
(Füllen Sie die ...
Bits natürlich aus)
oops, es gibt zwei f
s in dieser letzten Charakterklasse, also gibt es nur 2,45 Milliarden Permutationen.
Ich werde nicht so tun, als ob es schnell gehen würde ... es wird wahrscheinlich nicht so sein, aber es wird dir das Muster bringen, nach dem du suchst. Wenn Sie dazu neigen, dies häufig zu tun, würde ich wahrscheinlich eine Zeichentabelle erstellen, damit Sie auf einfache Weise alphanumerisch oder alphanumerisch auswählen können.