Я изучаю группы захвата в Regex, и меня смущает отсутствие документация по нему. Например, может ли кто-нибудь сказать мне разницу между двумя регулярными выражениями:
/(?:madhur)?/
и
/(madhur)?/
По моему мнению? во втором предлагает сопоставить madhur
ноль или один раз в строке.
Чем первое отличается от второго?
Первый не будет хранить группу захвата, например, $1
будет пустым. Префикс ?:
делает его не захватывающей группой . Обычно это делается для повышения производительности и беспорядочной обратной ссылки.
Во втором примере символы в группе захвата будут сохранены в обратной ссылке $1
.