Cette fois, je vais vous montrer quelles sont les catégories de points utilisées dans les expressions régulières, et quelles sont les précautions d'utilisation des points dans les expressions régulières. Ce qui suit est un cas pratique, jetons un coup d'oeil.
Nous savons que dans les expressions régulières, . peut être utilisé pour représenter n'importe quel caractère, mais dans le code source du soulignement et de jquery, nous pouvons voir que . Pour représenter n'importe quel caractère, utilisez plutôt [wW] ou [sS]. À première vue, il semble que le sens de l’expression soit le même, mais pourquoi ne pas utiliser la méthode simple et tourner en rond ? Permettez-moi de parler brièvement de cette question aujourd'hui.
Tout d’abord, nous devons bien comprendre le sens de . En fait, dire qu'il représente n'importe quel caractère unique peut être trompeur. Il faut souligner que ce "n'importe quel caractère unique" n'inclut pas les caractères qui contrôlent les sauts de ligne, c'est-à-dire qu'il n'inclut pas les caractères n r u2028 ou u2029. W et s peuvent contenir ces caractères. La différence entre les deux méthodes d'écriture est très claire, c'est-à-dire si elles peuvent faire correspondre plusieurs caractères de contrôle de nouvelle ligne.
Alors, quand devons-nous prendre en compte ces caractères de contrôle de nouvelle ligne ? Lorsque la chaîne à traiter peut contenir des nouvelles lignes. Il existe trop de scénarios de ce type, traitement de chaînes HTML, modèles de traitement, lecture de texte par nodejs, etc.
Quand il s'agit de scénarios de texte multiligne, on peut facilement penser au mode m (mode multiligne) des expressions régulières. Alors, le mode multiligne a-t-il un impact sur les problématiques dont nous discutons aujourd’hui ? Je ne suis pas sûr. Pourquoi pas sûr ? Certaines personnes jurent que la signification de . en mode monoligne est différente de celle en mode multiligne, c'est équivalent à [wW] ou [sS], tandis qu'en mode multiligne, la nouvelle ligne. le caractère de contrôle est exclu. Mais d'après mes expériences et en faisant référence à MDN, c'est faux. Il est vrai que les expressions régulières dans de nombreux langages ont les caractéristiques ci-dessus, mais je ne les ai pas vues en JavaScript, je ne sais pas s'il existe des différences entre les navigateurs. Alors, quel impact le mode multiligne a-t-il sur JavaScript ? Je pense que cela change simplement la signification des indicateurs ^ et $ : en mode ligne unique, ils représentent respectivement le début et la fin de la chaîne entière ; en mode multiligne, ils représentent le début et la fin de chaque ligne. Indépendamment du mode multiligne ou du mode monoligne, je pense que . ne contient pas de caractères de contrôle de nouvelle ligne et est équivalent à [^nru2028u2029].
En l'étendant un peu plus loin, pour les navigateurs modernes, vous pouvez directement utiliser [^] pour faire correspondre n'importe quel caractère.
Je ne veux pas écrire l'exemple de programme. Si vous êtes intéressé, vous pouvez l'essayer vous-même. ^.*$/gm respectivement. Correspond à "abcnedf", la raison va de soi.
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Comment utiliser la délégation d'événements JS dans les projets
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!