1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # première branche
( # on ouvre le groupe de capture 1
" # un guillemet (double quote)
[^"]* # zero ou plus de caractères qui sont tout sauf un guillemet
(?> # groupe atomique: c'est un groupe non-capturant qui une fois fermé, interdit au moteur
# de regex de reprendre les caractères qu'il y a dedans pour tester d'autres possibilités.
# Plus concrètement, son utilisation par rapport à un groupe non-capturant classique permet d'éviter des essais inutiles au moteur.
"" # un guillemet échappé
[^"]*
)* # on ferme le groupe atomique, on le répète zero ou plusieurs fois
"
) # on ferme le groupe de capture 1
| # OU exclusif qui sert à séparer plusieurs alternatives ou branches
# (une seule des deux branches peut réussir à une postion donnée dans la chaîne, jamais les deux en même temps)
# deuxième branche
(.) # un caractère dans le groupe de capture 2
\2+ # on répéte le contenu du groupe de capture 2 une fois ou plus |
Partager