У меня есть следующее регулярное выражение Java, которое я не писал, и я пытаюсь изменить:
^class-map(?:(\\s+match-all)|(\\s+match-any))?(\\s+[\\x21-\\x7e]{1,40})$
^ ^
Он похож на на этот.
Обратите внимание на первый вопросительный знак. Означает ли это, что группа не является обязательной? Значок вопроса после соответствующего )
уже есть. Имеет ли двоеточие особое значение в регулярном выражении?
Регулярное компилирование отлично, и уже есть тесты JUnit, которые показывают, как это работает. Просто я немного смущен тем, почему есть первый знак вопроса и двоеточие.