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

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

零下一度
零下一度original
2017-07-17 14:32:471155parcourir

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 =
var res = reg.exec(str);
console.log(res) // ['2016',index:5,input:'woshi2016ni2017']

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;
var str = 'woshi2016ni2017';
console.log(reg.lastIndex)
console.log(reg.exec(str))
 

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]

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));
 
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!

Déclaration:
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