Domanda

Come preg_match per una stringa null (vuota) ??

Ho bisogno di qualcosa del tipo:

/([0-9]|[NULL STRING])/
È stato utile?

Soluzione

Puoi usare ^ per abbinare l'inizio della linea e $ per abbinare la fine della linea, quindi l'espressione regolare ^$ corrisponderebbe a una linea / stringa vuota.

Il tuo esempio specifico (una riga / stringa contenente una singola cifra o vuota) sarebbe più semplice con ^[0-9]?$.

Altri suggerimenti

Con regex PHP puoi semplicemente dire:

/(\d|)/

Potrebbe essere utile ...

Puoi anche abbinare un carattere null a \0. È quello che intendevi con [NULL STRING]? Quell'espressione potrebbe essere /([0-9]|\0)/.

Ho dovuto farlo, in Java, per gli ultimi 4 per un numero CC. Il campo è facoltativo, pertanto potrebbe essere vuoto o composto da 4 cifre. La mia soluzione è:

^\d{4}$|^$

Il passaggio di questo valore null nella tipica modalità java comporta un'eccezione puntatore null:

String myString = null;
last4Pattern.matcher(myString).matches(); //Null in this case.

Tuttavia, ritengo che si tratti di un problema di implementazione di Java.

Dato che non è facile abbinare una stringa vuota ma in genere è possibile abbinare qualsiasi cosa che non sia una stringa vuota, considera di capovolgerla e non corrisponde al opposto (doppio negativo).
In questo esempio, tutto ciò che è non (^) una non -digit (\D) per zero o una volta (?):

[^\D]?

(o per ascii specifici: [^\x00-\x29\x3a-\xff]? o unicode: [^\u0000-\u0029\u003a-\uffff]?)

Corrisponde a un " " ( < stringa vuota > ), "0 " ;, " 1 <> quot; .. "9 " ;, ma non un " " ;, ( < spazio > ), "A " (senza cifre) o "123 " (qualsiasi stringa più lunga).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top