È buona norma includere controlli spazio vuoto / bianco in RegEx?

1

L'obiettivo di RegEx è quello di corrispondere esattamente a 6 caratteri, ma in aggiunta deve corrispondere a stringhe vuote o spazi bianchi (ad esempio ^$|\s|^(\w){6}$ ). È buona norma controllare la stringa vuota / lo spazio bianco in un'espressione RegEx o eseguire questo controllo nel codice di livello superiore, ad esempio String.IsNullOrWhiteSpace ? Sembra che ci sia un odore di codice nel farlo in RegEx, ma potrei immaginare cose.

Grazie.

    
posta fortune 24.01.2018 - 15:31
fonte

1 risposta

3

Permettere lo spazio bianco intervallato e richiedere ancora esattamente il valore di sei caratteri di input è costoso e dovrebbe essere fatto sicuramente al di fuori di una regex, ad es. tramite un sostituto () prima dell'applicazione della corrispondenza.

Permettere lo spazio bianco all'inizio o alla fine è ragionevolmente efficiente anche all'interno di un'espressione regolare, ma anche così probabilmente è meglio chiamare prima trim () (o qualsiasi altra cosa chiamata in C #). Per lo meno, renderà più chiaro lo scopo principale della convalida: le regex sono difficili da comprendere così com'è, non è necessario caricarle con due scopi leggermente diversi.

    
risposta data 24.01.2018 - 15:41
fonte

Leggi altre domande sui tag