Просмотр полной версии : Что означает выражение (?:x)
Объясните на примере, что означает регулярное выражение (?:x)
Это взято из хелпа с этого форума и там написано следующее:
Находит x, но не запоминает найденное. Это называется "незапоминающие скобки". Найденная подстрока не сохраняется в массиве результатов и свойствах RegExp.Как и все скобки, объединяют находящееся в них в единый подпаттерн.
alert( 'ababcdcd'.match(/(?:ab)+(cd)+/) )
Ты знаешь как работают скобки в регулярке, чуви? Так вот (?:) работает так же как скобки, но не создает дополнительную группу в результате. Т.е. /^\/request\/index(\.html)?/ => ['/request/index.html', '.html'], /^\/request\/index(?:\.html)?/ => ['/request/index.html'].
Ты знаешь как работают скобки в регулярке, чуви?
Из всех Ваших слов, я вижу только ЧУВИ)))) Вот на ЧУВАК, я бы ещё промолчал,
но... Ахахаха, я даже не знаю, как сказать... Не говорите мне так больше, пожалуйста!
Но возвращаясь к теме, спасибо Вам обоим! Мне кажется, что теперь я и это выражение понял и заодно мне стало ясно, как формируется результативный массив. Вот когда возвращается массив с совпавшей строкой и ещё какими-то элементами, то эти элементы и есть ( группы )! А если применить это выражение, то в массиве этой группы не будет! Я правильно понял?
А если применить это выражение, то в массиве этой группы не будет!
Да, поэтому оно называется non-matching group. Группировка есть, в матч не попадает.
http://javascript.ru/forum/attachments/misc/2304d1407187322-chto-oznachaet-vyrazhenie-x-chewie-jpg
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot