Vous êtes sur la page 1sur 7

Javascript - L'objet RegExp

Septembre 2015
1. Les particularits de l'objet RegExp
2. Construire une expression rgulire
3. Dbut et fin de chane
4. Nombre d'occurences
5. Parenthses capturantes
6. Caractre quelconque
7. Liste de caractres
8. Caractres spciaux
9. Tableau rcapitulatif
10. Les proprits de l'objet RegExp
11. Les mthodes de l'objet RegExp

Les particularits de l'objet RegExp


L'objet RegExp est un objet permettant de manipuler des expressions rgulires, c'est--dire des modles
crs l'aide de caractres ASCII permettant de manipuler des chanes de caractres, afin de trouver des
portions de la chane correspondant au modle.
La cration d'un objet RegExp se cre l'aide d'une simple expression comme suit :
Expression = /motif/drapeau

Il est galement possible de crer un tel objet de manire plus classique l'aide de son constructeur :
Expression = new RegExp("motif","drapeau")

Le motif reprsente l'expression rgulire en elle-mme tandis que le drapeau (optionnel) permet de
prciser le comportement de l'expression rgulire :
g indique une recherche globale sur la chane de caractre et indique une recherche de toutes les
occurences.
i indique une recherche non sensible la casse, c'est--dire que la recherche se fait indpendamment
de l'criture en majuscule ou minuscule de la chane.
gi combine les deux comportements prcdents.

Construire une expression rgulire


Les expressions rgulires permettent de rechercher des occurrences (c'est--dire une suite de caractres
correspondant ce que l'on recherche) grce une srie de caractres spciaux. L'expression rgulire
en elle-mme est donc une chane de caractre contenant des caractres spciaux et des caractres

standards.

Pour rechercher un caractre faisant partie des caractres spciaux, il suffit de le faire prcder
d'un antislash (sauf entre crochets) :
Caractre spcial Echappement
\

\\

\.

\$

\[

\]

\(

\)

\{

\}

\^

\?

\*

\+

\-

Dbut et fin de chane


Les symboles ^ et $ indiquent respectivement le dbut et la fin d'une chane, et permettent donc de la
dlimiter.
"^debut": chane qui commence par "debut"
"fin$": chane qui se termine par "fin"
"^chane$": chane qui commence et se termine par "chane"
"abc": chane contenant la chane "abc"

Nombre d'occurences
Les symboles *, + et ?, signifient respectivement "zro ou plusieurs", "au moins un", "un ou aucun", et
permettent de donner une notion de quantit.

"abc+": chane qui contient "ab" suivie de un ou plusieurs "c" ("abc", "abcc", etc.)
"abc*": chane qui contient "ab" suivie de zro ou plusieurs "c" ("ab", "abc", etc.)
"abc?": chane qui contient "ab" suivie de zro ou un "c" ("ab" ou "abc" uniquement)
"^abc+": chane commenant par "ab" suivie de un ou plusieurs "c" ("abc", "abcc", etc.)

Les accolades {X,Y} permettent de donner des limites prcises de nombre d'occurences.
"abc{2}": chane qui contient "ab" suivie de deux "c" ("abcc")
"abc{2,}": chane qui contient "ab" suivie de deux "c" ou plus ("abcc" etc..)
"abc{2,4}": chane qui contient "ab" suivie 2, 3 ou 4 "c" ("abcc" .. "abcccc")

Il est noter que le premier nombre de la limite est obligatoire ("{0,2}", mais pas "{,2}"). Les symboles vu
prcedemment ('*', '+', et '?') sont quivalents "{0,}", "{1,}", et "{0,1}".

Parenthses capturantes
Les parenthses ( ) permettent de reprsenter une squence de caractres et de capturer le rsultat. Les
occurences correspondant au motif entre parenthses sont accessibles via la mthode exec() de l'objet
RegExp ou bien les mthodes search(), match() et replace() de l'objet String.
"a(bc)+": chane qui contient "a" suivie de au moins
une occurence de la chane "bc"

La barre verticale | se comporte en tant qu'oprateur OU


"(un|le)": chane qui contient "un" ou "le"
"(un|le) chien": chane qui correspond
"un chien" ou "le chien"
"commentcamarche\.((net)|(com)|(org))":
chane qui correspond :
"commentcamarche.net"
"commentcamarche.com"
"commentcamarche.org"

Caractre quelconque
Le point (.) indique n'importe une occurence de n'importe quel caractre.
"^.{3}$": chane qui contient 3 caractres
".*": Tous les caractres

Liste de caractres
Les crochets [ ] dfinissent une liste de caractres autoriss (ou interdits). Le signe - permet quand lui de
dfinir un intervalle. Le caractre ^ aprs le premier crochet indique quand lui une interdiction.
"[abc]": chane qui contient un "a", un "b", ou un "c".
"[a-z]": chane qui contient un caractre compris entre "a" et "z".
"[^a-zA-Z]": chane qui ne commence pas par une lettre.

En effet entre crochets, chaque caractre reprsente ce qu'il est. Pour reprsenter un ] il faut le mettre en
premier (ou aprs un ^ si c'est une interdiction). Etant donn que le signe - sert dfinir un intervalle, il est
ncessaire de commencer ou de terminer par ce caractre lorsque l'on veut indiquer qu'il fait partie des
caractres autoriss :
"[-ag]": chane qui contient un moins (-), un "a", ou un "g"
"[a-g]": chane qui contient un caractre compris entre "a" et "g"
"[\+?{}.]": chane qui contient un de ces six caractres
"[]-]": chane qui contient le caractre "]" ou le caractre "-"

Caractres spciaux
Il existe enfin des caractres spciaux (prcds d'une barre oblique inverse) reprsentant des types de
caractres spcifiques :

Caractre
spcial
\b

Utilit

Permet de capturer une coupure de mot, c'est--dire des caractres situs au tout dbut ou
la fin d'un mot. Par exemple "he\b" permet de capturer "CommentCaMarche" mais pas
"chenil". De la mme faon "\bCo" permet de capturer "CommentCaMarche" mais pas
"DCor".

\B

Permet de capturer les caractres non prcds ou suivis d'une coupure de mot, c'est-dire des caractres situs au milieu d'un mot. Par exemple "ment\B" permet de capturer
"CommentCaMarche" mais pas "Comment Ca Marche".

\cCaractre Permet de capturer un caractre de contrle (correspondant la combinaison


Ctrl+Caractre. Par exemple "\cC" permet de capturer la squence Ctrl+c.
\d

Permet de capturer un caractre numrique. \d est ainsi quivalent [0-9].

\f

Permet de capturer un saut de page.

\n

Permet de capturer un saut de ligne.

\r

Permet de capturer un retour chariot.

\s

Permet de capturer un "caractre blanc" (espace, retour chariot, tabulation, saut de ligne,
saut de page).

\S

Permet de capturer un "caractre non blanc" (tous les caractres sauf espace, retour
chariot, tabulation, saut de ligne, saut de page).

\t

Permet de capturer une tabulation horizontale.

\v

Permet de capturer une tabulation verticale.

\w

Permet de capturer un caractre alphanumrique (y compris le caractre _). \w est ainsi


quivalent [a-zA-Z0-9_].

\W

Permet de capturer un caractre non alphanumrique. \W est ainsi quivalent [^a-zA-Z09_].

\oNombre

Permet de capturer un nombre en base octale (base 8).

\xNombre

Permet de capturer un nombre en base hexadcimale (base 16).

Tableau rcapitulatif
Voici un tableau rcapitulatif des caractres spciaux utiliss dans les expressions rgulires :

Caractre Utilit
\

Le caractre antislash reprsente lui-mme ou le caractre spcial qui le suit.

[]

Les crochets dfinissent une liste de caractres.

()

Les parenthses dfinissent un lment compos de l'expression rgulire qu'elle contient.

{}

Les accolades lorsqu'elles contiennent un ou plusieurs chiffres spars par des virgules
reprsentent le nombre d'occurences de l'lment les prcdant (par exemple p{2,5}
correspond ppp, pppp ou ppppp

Un moins entre deux caractres dans une liste reprsente un intervalle (par exemple [a-d]
reprsente [abcd]).

Le caractre point reprsente un caractre quelconque.

Le caractre astrisque indique un nombre d'occurences indtermin (y compris aucune) de


l'lment le prcdant.

Le caractre plus indique une ou plusieurs occurences de l'lment le prcdant.

Le caractre "point d'interrogation" indique une occurence ventuelle (0 ou 1) de l'lment le


prcdant.
lard>cochon)

Plac en dbut d'expression il signifie "chane commenant par .. "


Utilis entre crochet, immdiatement aprs le crochet ouvrant, il signifie "ne contenant pas
les caractres suivants...

[abc]

Permet de rechercher les caractres compris entre les crochets.

[^abc]

Permet de rechercher tous les caractres sauf ceux compris entre les crochets.

Plac en fin d'expression il signifie "chane finissant par ... "

Les proprits de l'objet RegExp

Le rsultat d'une expression rgulire est stocke dans l'objet RegExp. Les proprits de l'objet RegExp
contiennent des chanes correspondant la dernire occurence trouve.
La syntaxe pour manipuler ces donnes est la suivante :
RegExp.proprit

Proprit

Description

$_

Proprit correspondant la proprit input.

$*

Proprit correspondant la proprit multiline.

$&

Proprit correspondant la proprit LastMatch.

$+

Proprit correspondant la proprit LastParen.

$'

Proprit correspondant la proprit LeftContext.

$'

Proprit correspondant la proprit RightContext.

global

Proprit boolenne indiquant si la recherche est globale (true) ou non (false).

ignoreCase

Proprit boolenne indiquant si la recherche est sensible la casse (true) ou non (false).

input

Indique la chane d'entre sur laquelle la recherche est ralise.

lastIndex

Indique la position laquelle la recherche suivante va se faire.

lastMatch

Contient la dernire occurence trouve.

lastParen

Contient la dernire occurence correspondant un motif entre parenthses.

leftContext

Contient la chane situ gauche de l'occurence trouve.

multiline

Proprit boolenne indiquant si la recherche porte sur plusieurs lignes (true) ou non
(false).

rightContext Contient la chane situ droite de l'occurence trouve.


source

Contient le motif de l'expression rgulire.

Les mthodes de l'objet RegExp


Les mthodes de l'objet RegExp permettent d'appliquer l'expression rgulire une chane de caractres.
Le tableau suivant dcrit les mthodes de l'objet RegExp :

Mthode

Description

Expression.compile("chaine"); Permet de redfinir une nouvelle expression rgulire.


Expression.exec("chaine");

Effectue une recherche sur la chane de caractre avec l'expression


rgulire dfinie. Cette mthode retourne un tableau contenant les
occurences trouves.

Expression.test("chaine");

Teste une chane de caractre avec l'expression rgulire. Cette


mthode retourne True si la recherche est fructueuse, false dans le
cas contraire.

Prcdent
13
14
15
16
17
18
19
20
21
22
Suivant

Ralis sous la direction de Jean-Franois PILLOU,


fondateur de CommentCaMarche.net.
Ce document intitul Javascript - L'objet RegExp issu de CommentCaMarche (www.commentcamarche.net) est mis disposition
sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixes par
la licence, tant que cette note apparat clairement.

Vous aimerez peut-être aussi