группа захвата в регулярном выражении

Я изучаю группы захвата в Regex, и меня смущает отсутствие документация по нему. Например, может ли кто-нибудь сказать мне разницу между двумя регулярными выражениями:

/(?:madhur)?/

и

/(madhur)?/

По моему мнению? во втором предлагает сопоставить madhur ноль или один раз в строке.

Чем первое отличается от второго?

27
задан Madhur Ahuja 21 June 2011 в 00:11
поделиться

1 ответ

Первый не будет хранить группу захвата, например, $1 будет пустым. Префикс ?: делает его не захватывающей группой . Обычно это делается для повышения производительности и беспорядочной обратной ссылки.

Во втором примере символы в группе захвата будут сохранены в обратной ссылке $1.

Дополнительная литература .

29
ответ дан 28 November 2019 в 05:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: