J'ai la regex Java suivante, que je n'ai pas écrite et que j'essaie de modifier :
^class-map(?:(\\s+match-all)|(\\s+match-any))?(\\s+[\\x21-\\x7e]{1,40})$
^ ^
C'est similaire à celui-ci .
Notez le premier point d'interrogation. Cela signifie-t-il que le groupe est facultatif ? Il y a déjà un point d'interrogation après le point d'interrogation correspondant )
. Les deux points ont-ils une signification particulière dans les regex ?
La regex compile bien, et il y a déjà des tests JUnit qui montrent comment elle fonctionne. C'est juste que je ne comprends pas bien pourquoi le premier point d'interrogation et les deux points sont là.