Maison > Article > développement back-end > PHP comment obtenir la longueur de la sous-chaîne de départ qui ne correspond pas au masque
L'éditeur PHP Banana vous présentera comment obtenir la longueur de la sous-chaîne de départ du masque qui ne correspond pas. En PHP, vous pouvez utiliser la fonction preg_match combinée avec des expressions régulières pour réaliser cette fonction. Tout d'abord, utilisez une expression régulière pour faire correspondre les caractères indésirables, puis obtenez la position correspondante via la fonction preg_match et enfin calculez la longueur de la sous-chaîne de départ. Cela facilite la mise en œuvre de la fonction d'obtention de la longueur de sous-chaîne de départ d'un masque qui ne correspond pas.
Question : Comment obtenir la longueur de la sous-chaîne de départ du masque qui ne correspond pas en PHP
Solution :
Utilisez la fonction preg_match()
, qui renvoie la longueur de la sous-chaîne qui correspond à laregex preg_match()
函数,它返回匹配正则表达式的子字符串的长度。通过使用否定前瞻断言 (?!)
. En utilisant une assertion d'anticipation négative (?!)
, vous pouvez faire correspondre les sous-chaînes qui ne correspondent pas au masque spécifié.
Exemple de code :
$subject = "This is a test string"; $mask = "/(t.*)/"; $pattern = "/^(?:(?!$mask).)*$/"; preg_match($pattern, $subject, $matches); $length = strlen($matches[0]);
Explication :
preg_match()
函数检查给定字符串 $subject
是否与正则表达式 $pattern
Correspondance. $pattern
Expression régulière : ^
: Ancrez le début de la chaîne. (?:...)*
: fait correspondre zéro ou plusieurs occurrences de tout caractère qui ne correspond pas au sous-modèle (...). (?!$mask)
:否定前瞻断言,确保不匹配 $mask
. $
: Ancrez le bout de la ficelle. $matches
Tableau $matches
数组包含匹配项,其中 $matches[0]
contenant des correspondances, où $matches[0]
est la sous-chaîne de départ du masque qui ne correspond pas.
strlen($matches[0])
Renvoie la longueur de la sous-chaîne. Notes supplémentaires :
$mask
est valide. strspn()
comme alternative, qui compte le nombre de caractères jusqu'à ce que le premier caractère correspondant soit trouvé. Exemple de code complet utilisant strspn()
:
$subject = "This is a test string"; $mask = "t"; $length = strspn($subject, $mask, 0, strlen($subject) - 1);
Avantages :
strspn()
Plus efficace pour les cordes longues. Inconvénients :
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!