Abbiamo un'espressione regolare abbastanza complessa che controlla la struttura delle stringhe.Come ottenere il primo carattere che sta causando la non corretta espressione del reg.
Mi chiedo se esiste un modo semplice per scoprire quale carattere nella stringa che sta causando l'espressione di reg non corrispondente.
Ad esempio,
string.match(reg_exp).get_position_which_fails
Fondamentalmente, l'idea è come ottenere "posizione" della macchina a stati quando rinunciato.
Ecco un esempio di espressione regolare:
%q^[^\p{Cc}\p{Z}]([^\p{Cc}\p{Zl}\p{Zp}]{0,253}[^\p{Cc}\p{Z}])?$
Cosa fallisce in "abad'match/ae /'? Questo problema non ha semplicemente una soluzione adeguata. – mudasobwa
Potrebbe essere d'aiuto se potessi pubblicare l'espressione regolare. – hwnd
Si desidera trovare quanti caratteri sono abbinati prima del primo errore. Se l'espressione da abbinare è abbastanza semplice, è possibile creare un'espressione regolare che sarà sempre corrispondente e che raccoglierà buoni gruppi lungo la strada. Qualcosa come '/ (f?) (A?) (I?) (L?) (H?) (E?) (R?) (E?) /' Che corrisponderà ai primi 4 caratteri di "failNow". [Test] (https://regex101.com/r/uM4vB7/1) –