Maison > interface Web > js tutoriel > Une explication de la paresse et de la cupidité régulières

Une explication de la paresse et de la cupidité régulières

零下一度
Libérer: 2017-07-17 14:32:47
original
1184 Les gens l'ont consulté

Cet article apporte une explication de la paresse et de la cupidité régulières. J'espère qu'il sera utile à tout le monde.

exec - > Capture régulière

Chaque fois que vous capturez, la correspondance par défaut est effectuée en premier. le résultat est nul ; nous ne pouvons capturer que le contenu correspondant ;

Format du contenu capturé

1. le tableau est le contenu capturé par l'expression régulière actuelle

Index : la position d'index où commence le contenu capturé dans la chaîne

 Entrée : Chaîne originale capturée

  reg = /\d+/ str = 'woshi2016ni2017' res =
Copier après la connexion
var res = reg.exec(str);
console.log(res) // ['2016',index:5,input:'woshi2016ni2017']
Copier après la connexion

2. Caractéristiques de la capture régulière

 1) Paresse -> Chaque fois que exec est exécuté, seul le premier contenu correspondant est capturé. Sans aucun traitement, même si plusieurs captures sont exécutées, le premier contenu correspondant sera toujours capturé.

LastIndex : est la position où commence la capture régulière dans la chaîne. La valeur par défaut est 0

2) Comment résoudre la paresse Sexualité. Ajouter un modificateur "g" à la fin de l'expression régulière

Modificateurs : g, i, m

global(g) : Correspondance globale

ignoreCase(i) : Ignorer la correspondance de casse

multiline(m) : Correspondance multiligne 🎜>

var reg = /\d/g;
Copier après la connexion
var str = 'woshi2016ni2017';
Copier après la connexion
console.log(reg.lastIndex)
Copier après la connexion
console.log(reg.exec(str))
Copier après la connexion
 

Principe : Ajouter le modificateur global g pour régulariser la valeur de notre lastIndex après que chaque capture soit devenue les dernières valeurs, et la capture suivante commencera à partir de la dernière position, afin que tout le contenu qui doit être capturé puisse être obtenu

 3), écrivez votre propre programme pour obtenir l'expression régulière Tous capturés contenu (n'oubliez pas d'ajouter g)

 

var reg = /\d+/g;var str = 'aswofde2015xsewde2016awdefer2017';var ary = [];var res = reg.exec(str);while(res){
            ary.push(res[0])
            res = reg.exec(str);
        }
        console.log(ary)//[2015,2016,2017]
Copier après la connexion

4), cupidité Caractéristique : Chacun la capture du modèle régulier est capturée en fonction du résultat de correspondance le plus long. Par exemple : 2 est conforme au modèle régulier, et 2015 est également conforme au modèle régulier. Par défaut, nous capturons 2015

5), comment résoudre la nature gourmande du régulier ->Ajouter un métacaractère quantificateur après ? C'est

var reg = /\d+?/g;var str = 'aswofde2015xsewde2016awdefer2017';
        console.log(reg.exec(str));
Copier après la connexion
 
Il a de nombreuses fonctions dans les expressions régulières : Mettez-le après un

ordinaire métacaractère pour représenter 0-1 occurrences de /d?/ -> Le nombre peut apparaître ou non

Le mettre après le métacaractère d'un le quantificateur est gourmand lors de l'annulation de la capture

3. La méthode de correspondance dans la chaîne -> Combiner toutes les sommes avec des caractères réguliers Tous les caractères correspondants sont obtenus  

Bien que le match soit plus simple que notre exécutif dans la situation actuelle, il y a certains problèmes dans le match qu'il ne peut pas gérer seul dans le cas d'une capture groupée. , match ne peut capturer que le contenu correspondant aux grandes expressions régulières, mais le contenu capturé par les petites expressions régulières ne peut pas être obtenu

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal