Maison  >  Questions et réponses  >  le corps du texte

À propos de l'utilisation du caractère circonflexe '^'

<?php
header('Content-Type: text/html; charset=utf-8');
$pattern='/[^0-9A-Za-z_]/';
$string='! $@!#%$#^##';
if(preg_match($pattern, $string,$match)){
echo 'Correspondance, le résultat est :';
var_dump($match);
}
else {
echo 'No match';
}
?>

Sortie : correspondant, le résultat est : array(1) { [0]=> string(1) "!" $ Il existe de nombreuses chaînes qui ne sont pas dans la plage de [^0-9A-Za-z_], pourquoi un seul '!' est affiché ?

WillWill2560 Il y a quelques jours2456

répondre à tous(2)je répondrai

  • 寻觅 beyond

    寻觅 beyond2017-11-09 12:58:41

    preg_match() ne correspond qu'une seule fois. S'il correspond à un contenu qui remplit les conditions, il reviendra immédiatement et ne continuera pas à correspondre, même s'il existe d'autres contenus qui remplissent les conditions plus tard.

    répondre
    0
  • 寻觅 beyond

    寻觅 beyond2017-11-09 12:57:35

    preg_match() ne correspond qu'une seule fois. S'il correspond au contenu qui remplit les conditions, il ne correspondra plus. Si vous souhaitez faire correspondre tout le contenu qui remplit les conditions, vous pouvez utiliser preg_match_all($pattern, $string, $arr) , $arr enregistrera le contenu correspondant. Tous les contenus éligibles

    répondre
    0
  • Annulerrépondre