Record - Expressions régulières

définitions

JavaScript expression régulière, il y a deux sortes de façons définies, semblables à la définition d'un correspondant <% XXX%> string

1. Constructor

var reg = new RegExp ( '<% [^%>] +%>', 'g');

2. littérale

var reg = / <% [^%>]%> / g;
  • G:  , Ltd Rejoignez libre, recherche en texte intégral, les résultats de recherche par défaut connectée à la première étape
  • i:  Ingore cas, ignorant la casse, le cas par défaut sensible
  • m:  plusieurs lignes, recherche multi-ligne (changement ^ et qui signifie $ qu'ils sont le traitement de première ligne et se terminant en une ligne, et non pas seulement au début et à la fin du match la chaîne entière)

métacaractères

Les expressions régulières personnes à une raison importante est que le caractère d'échappement trop prohibitif, la combinaison beaucoup, mais métacaractères d'expression régulière (caractères spéciaux ont une signification particulière dans l'expression régulière peut être utilisé pour spécifier son chef caractère) n'est pas beaucoup

caractères Yuan :( [{\ ^ $ |) * + ?.

Non chaque personnage a sa propre signification particulière de yuans, a différentes significations dans différentes combinaisons caractère Ghost, regardez le classement

Caractères spéciaux prédéfinis

caractère sens
\ t Tabulation horizontale
\ r retour chariot
\ n Newline
\F Les sauts de page
\ c X X et le caractère de contrôle correspondant (Ctrl + X)
\ v Tabulation verticale
\ 0 caractère nul

 

 

 

 

 

 

 

Classes de caractères

En général, un caractère d'expression régulière (un nombre de caractères d'échappement) correspondant à une chaîne de caractères, le sens de l'expression ab \ t est

Mais on peut utiliser des caractères meta [] pour construire une classe simple appelée moyen de classe, conformément à certaines caractéristiques de l'objet, est une référence générale plutôt que spécifique à un caractère, et nous pouvons utiliser l'expression [abc] pour caractère a ou b ou c classés en tant que classe, cette expression peut correspondre à un caractère

caractères Yuan combinaison [] peut créer une classe , on peut aussi utiliser le métacaractère ^ créer une classe inverse / catégorie négative, le genre inverse du sens ne appartiennent à la classe de contenu XXX, l'expression [^ abc] représentent un caractère ou non b, c ou contenu

gamme de classe

Suivez les instructions ci-dessus si nous voulons correspondre à un seul chiffre alors l'expression comme celui-ci

[0123456789]

Si la lettre est ainsi. . . Bonne difficulté, les expressions régulières fournit également une gamme de classes, nous pouvons utiliser pour connecter deux caractères xy représente un caractère de x à y, qui est un intervalle fermé, qui contient x et ybenshen, de sorte qu'il est adapté en minuscule simple

[Az]

Si vous voulez faire correspondre toutes les lettres il? Dans [] est ligatures classes internes, nous pouvons écrire [a-zA-Z]

Classes pré-définies

Il suffit d'utiliser régulièrement nous avons créé plusieurs classes, pour représenter des nombres, des lettres, etc., mais il est très gênant d'écrire, l'expression régulière fournit plusieurs classes prédéfinies commun pour nous de faire correspondre les caractères communs

caractère classes d'équivalence sens
. [^ \ N \ r] Tous les caractères sauf retour chariot et les sauts de ligne
\ré [0-9] caractères numériques
\RÉ [^ 0-9] Les caractères non numériques
\ s [\ T \ n \ X0B \ f \ r] Whitespace
\ S [^ \ T \ n \ X0B \ f \ r] Les caractères non-blancs
\ w [A-Za-z_0-9] caractères Word (lettres, chiffres, underscores)
\ W [^ A-Za-z_0-9] Le caractère non-mot

 

 

 

 

 

 

 

 

Avec ces classes prédéfinies, écrire une très pratique régulière, par exemple, nous voulons correspondre à une chaîne ab + numérique + un caractère, vous pouvez écrire un ab \ d.

 

limite

Les expressions régulières fournit plusieurs caractères correspondant frontière commune

caractère

sens

^

A partir de xx

$

Mettre fin à xx

\ b

limite de mot, les caractères se rapportent à [a-zA Z_0-9-] à l'extérieur

\ B

frontière non mot

 

 

 

 

 

 

 

 

Regardez les boîtes aux lettres irresponsables correspondance régulière (ne pas imiter, entre parenthèses seront mentionnées plus loin) \ w + @ \ w + \. (Com) $

quantificateur

Avant de présenter la méthode est un à un adapté, si nous voulons correspondre à une chaîne de 20 Do numérique consécutive, nous devons être écrit

\ D \ d \ d \ d ...

À cette fin, l'expression régulière a introduit quelques quantificateurs

caractère sens
? Apparaître zéro (au plus une fois) ou une fois
+ Produire une ou plusieurs fois (au moins une fois)
* Apparaître zéro fois ou plus (plusieurs fois)
{N} Apparaît n fois
{N, m} Pour apparaître m fois n
{N,} Apparaît au moins n fois
   

 

 

 

 

 

 

 

 

Regardez quelques exemples d'utilisation quantificateurs

\ w + \ b Byron mots correspondants + + limite Byron

 

(/ \ w + \ b Byron /) test ( 'Salut Byron . '); // true 

(/ \ w + \ b Byron /) test ( 'Bienvenue Byron'). // true 

(/ \ w + \ b Byron /) test ( 'HiByron . '); //faux

 \ D + \. \ D {1,3} trois décimales correspondant numérique

 le mode cupide et non gourmand

Lisez ci-dessus quantificateurs décrit, l'amour peut-être penser les étudiants penseront à quelques questions sur le principe de correspondance, tels que {3,5} quantificateurs, s'il y a eu dix fois dans un type de phrase, de sorte que chaque match, il est trois ou cinq de toute façon 3,4,5 conditions Satisfy 3-5, quantificateurs sont autant de matches par défaut, qui est, nous le disons souvent gourmand

« 123456789'.match (/ \ d {3,5} / g); // [ "12345", "6789"]

 Comme il y a gourmand, alors il y aura certainement mode non gourmand, donc aussi peu que possible de faire correspondre l'expression régulière, ce qui signifie qu'une fois une rencontre idéale ne continue pas d'essayer et de l'approche est très simple, après la quantificateurs, plus? Pour

« 123456789'.match (/ \ d {3,5} / g?); // [ "123", "456", "789"]

 paquet

Parfois, nous voulons utiliser quantificateurs lors de l'appariement de multiples personnages, plutôt que l'exemple ci-dessus correspond un tel espoir 20 chaîne correspondant Byron semble, si l'on écrit Byron {20}, puis le match est Byro + n apparaît 20 fois, comment Byron mit dans son ensemble? Utilisation () peut atteindre l'objectif de temps, nous avons appelé les paquets

(Byron) {20}

 

 Si vous voulez correspondre Byron Casper apparaissent 20 fois ou comment le faire? Vous pouvez utiliser des caractères | Rencontrons ou de l'efficacité

(Byron | Casper) {20}

 

 Nous voyons la figure il y a des choses # 1, quel est-il? Utilisez le regroupement correspondance d'une expression régulière seront placés dans un paquet, la valeur par défaut consiste à appuyer sur la distribution numérotée, obtenu différents contenus d'une capture de paquets en fonction du nombre, cette fonction est un peu d'espoir dans les premiers matches de l'opération spécifique est utile

(Byron). (Ok)

 

S'il y a le cas du paquet imbriqué, en dehors du numéro de groupe avant

((^ |%>) [^ \ T] *)

 

Parfois, nous ne voulons pas capturer des paquets, il suffit d'ajouter dans le groupe sur ce :?, ne signifie pas que le contenu du paquet ne pas appartenir à l'expression régulière, mais ne sera pas ajouter à ce groupe numéroté seulement

(: Byron) (ok de).

 

 En fait, C # et d'autres langues peuvent également être regroupés à partir du nom, mais ne supporte pas JavaScript

avant-première

expression sens
exp1 (? = exp2) Suivie d'une exp2 correspondant exp1
exp1 (?! exp2) Exp2 correspond pas à l'arrière de exp1

 

 

 

 

Certains disent que l'abstrait, regardez un bon exemple (? = Byron)

(/good(?=Byron)/).exec('goodByron123' ); // [ 'bon'] 
(/good(?=Byron)/).exec('goodCasper123' ); // null 
(/bad(?=Byron)/).exec('goodCasper123');//null

Exp1 peut être vu par l'exemple ci-dessus (? = Exp2) expression correspondra expression exp1, mais seulement derrière son contenu est temps exp2 correspondra, à savoir deux conditions, exp1 (?! Exp2) comparer des choses comparables

bon (?! Byron)

(/good(?!Byron)/).exec('goodByron123' ); // null 
(/good(?!Byron)/).exec('goodCasper123' ); // [ 'bonne'] 
(/bad(?!Byron)/).exec('goodCasper123');//null

référence 

Je suppose que tu aimes

Origine www.cnblogs.com/dillonmei/p/12551726.html
conseillé
Classement