Confirmation de l'intégrité numérique d'une chaîne à l'aide d'expressions régulières
Lorsque vous essayez de déterminer si une chaîne représente un nombre à l'aide de l'expression régulière "d", inattendu des matchs peuvent survenir. Par exemple, l'extrait de code fourni trouve « 78.46.92.168:8000 » comme nombre positif, ce qui n'est pas le résultat escompté. Cela soulève la question de savoir comment "." et ":" les caractères sont reconnus comme des chiffres.
La réponse réside dans l'expression "d", qui correspond à un ou plusieurs chiffres dans une chaîne. Par conséquent, il trouve et s'aligne sur le "78" au début de l'adresse IP, ce qui entraîne une correspondance positive.
Pour résoudre ce problème et garantir que le modèle regex ne reconnaît que les valeurs numériques, on peut le modifier à "^d $". Cette expression révisée recherche une correspondance qui commence par un chiffre, continue avec zéro ou plusieurs chiffres supplémentaires et se termine par un chiffre.
Alternativement, une approche plus simple et concise consiste à utiliser la méthode "isdigit()" de la chaîne, comme dans "78.46.92.168:8000".isdigit(). Cette méthode vérifie explicitement si la chaîne entière satisfait aux critères numériques, éliminant toute confusion dans l'interprétation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!