8
votes

Quel est le sens de `?:` dans l'expression régulière

J'ai vu une expression régulière pour correspondre à une URL: / ^ \ / utilisateurs? (?: \ / (\ d +) (?: \. \. \ d +))?)? / . Je suis confus par l'usage de ?: au début de chaque match de groupe.

Quel est le sens de cela?


4 commentaires

Quelle bibliothèque de regex utilisez-vous?


Svick: Est-ce que ça compte vraiment? Clairement un Perl-compatible. (Cette syntaxe a été introduite dans Perl 5.)


@svick: C'est une extension très largement adoptée à la spécification POSIX.


Eh bien, il pourrait y avoir de petits détails spécifiques à la mise en œuvre. Et cela affecterait également quel lien de documentation est le plus approprié.


3 Réponses :


5
votes

C'est un groupe de non-capture, donc si un match est établi que le groupe particulier ne sera pas capturé.

http://www.regular-expressions.info/refadv.html < / p>


0 commentaires

10
votes

(?:) (le () fait partie de l'expression) est un groupe non capturant . . . .

voir http://www.regular-expressions.info/refadv.html .


0 commentaires