Это означает, что подшаблон является не-захватным подшаблоном. Это означает, что все, что соответствует в (?:\w+\s), даже если оно заключено в (), оно не будет отображаться в списке совпадений, только (\w+) будет.
Вы по-прежнему ищете конкретный шаблон (в данном случае один символ пробела, по крайней мере, одно слово), но вам все равно, что на самом деле соответствует.
Ответ 2
В дополнение к превосходным ответам, его полезность также упрощает код, необходимый для извлечения групп из согласованных результатов. Например, ваша группа (\ w +) известна как группа 1, не заботясь о каких-либо группах, которые появляются перед ней. Это может улучшить ремонтопригодность вашего кода.
Ответ 3
Это означает только группа, но не помнит сгруппированную часть.
По умолчанию () сообщает движку regex запомнить часть строки, которая соответствует шаблону между ним. Но иногда мы просто хотим сгруппировать шаблон без запуска памяти регулярных выражений, чтобы мы использовали (?: вместо (