Je suis à la recherche de façons de faire correspondre une plage de caractères et supposé que le regEx suivant ne correspondrait qu'à des caractères dans la plage des codes hexadécimaux entre 20 et 7E. Cependant, il correspond aussi chr(10)
(saut de ligne), en fait, les impressions suivantes « passés »:Comportement contre-intuitif preg_match - quel est le moyen le plus propre de faire correspondre une série de caractères?
echo preg_match("/^[\x20-\x7E]*$/", chr(10)) ? 'passed' : 'failed';
Toute idée pourquoi et comment faire correspondre cette gamme?
... ou utilisez '\ A' et' \ Z' au lieu de '^' et '' $ à force d'ancrage au début et à la fin de la chaîne. –
@TimPietzcker Néanmoins, M42 n'a-t-il pas raison de dire que l'étoile est optionnelle et que l'expression régulière passera non seulement pour les flux de formulaire mais comme 'chr (14)' même si vous avez utilisé \ A ou \ z? –
@TimPietzcker, vous avez raison. Il est préférable d'utiliser \ A et \ z parce que le modèle serait indépendant de PHP. – sectus