Preg Match Chaîne Vide
Comment preg_match pour une chaîne nulle (vide)??
J'ai besoin de quelque chose comme:
/([0-9]|[NULL STRING])/
5 réponses
Vous pouvez utiliser ^
pour correspondre au début de la ligne, et $
pour correspondre à la fin de la ligne, ainsi l'expression régulière ^$
correspondrait à une ligne/chaîne vide.
Votre exemple spécifique (une ligne/chaîne contenant un seul chiffre ou étant vide) serait plus facile à réaliser avec ^[0-9]?$
.
Avec la regex de PHP, vous pouvez simplement dire:
/(\d|)/
Il peut être utile...
Vous pouvez également faire correspondre un caractère nul avec \0
. Est - ce ce que vous vouliez dire par [chaîne nulle]?
Cette expression pourrait être /([0-9]|\0)/
.
J'ai dû le faire, en java, pour les 4 derniers pour un numéro CC. Le champ est facultatif, il peut donc être vide ou 4 chiffres. Ma solution est:
^\d{4}$|^$
Le passage d'un null dans la mode java typique entraîne une exception de pointeur null:
String myString = null;
last4Pattern.matcher(myString).matches(); //Null in this case.
Cependant, je pense que c'est plus un problème D'implémentation Java.
Comme il n'est pas facile de faire correspondre une chaîne vide mais qu'il est généralement possible de faire correspondre tout ce qui n'est pas une chaîne vide, pensez à la retourner et Pas correspondre au opposé (double négatif).
Dans cet exemple, tout ce qui est pas (^
) un non chiffres (\D
) pour zéro ou une fois (?
):
[^\D]?
(ou pour ascii spécifique: [^\x00-\x29\x3a-\xff]?
, ou unicode: [^\u0000-\u0029\u003a-\uffff]?
)
Correspond à un "" (0
", "1
" .. "9
", mais pas un "", (<space>), "
A
" (non chiffres) ou "123
" (plus de chaîne).