Я пытаюсь понять следующий квантор квантов регулярных выражений (а это просто примерный токен здесь):
a{n}?
Как знак вопроса влияет на соответствие указанного выражения? И как он отличается от следующего?
a{n}
Я бы ожидал, что шаблон aa{1}?a
будет соответствовать как aaa
, так и aa
, например. Если он соответствует aaa
, aa
соответствует не. Шаблон a(a{1})?a
соответствует совпадению, поэтому круглые скобки имеют здесь значение.
Примечание: статья msdn Квантеры в регулярных выражениях для обоих:
Квантор {n} соответствует предыдущему элементу ровно n раз, где n - любое целое число.
Для {n}?
он добавляет следующую, не слишком полезную часть:
Это ленивый аналог жадного квантификатора {n} +.