Wir haben einen ziemlich komplexen regulären Ausdruck, der nach String-Struktur sucht.So erhalten Sie das erste Zeichen, das reg-Ausdruck verursacht, nicht zu entsprechen
Ich frage mich, ob es eine einfache Möglichkeit gibt herauszufinden, welches Zeichen in der Zeichenfolge, die Reg-Ausdruck verursacht, nicht übereinstimmen.
Zum Beispiel
string.match(reg_exp).get_position_which_fails
Grundsätzlich ist die Idee, wie „Position“, um die Zustandsmaschine, wenn es aufgegeben. Hier
ist ein Beispiel für reguläre Ausdrücke:
%q^[^\p{Cc}\p{Z}]([^\p{Cc}\p{Zl}\p{Zp}]{0,253}[^\p{Cc}\p{Z}])?$
Was schlägt in '' abad'match/ae/'? Dieses Problem hat einfach keine adäquate Lösung. – mudasobwa
Es kann hilfreich sein, wenn Sie den regulären Ausdruck posten könnten. – hwnd
Sie möchten herausfinden, wie viele Zeichen vor dem ersten Fehler gefunden wurden. Wenn der passende Ausdruck einfach genug ist, können Sie eine Regex erstellen, die immer übereinstimmt und auf diese Weise gute Gruppen sammelt. Etwas wie '/ (f?) (A?) (I?) (L?) (H?) (E?) (R?) (E?) /' Wird mit den ersten 4 Zeichen von "failNow" übereinstimmen. [Test] (https://regex101.com/r/uM4vB7/1) –