Что означает выражение (?:x)
Объясните на примере, что означает регулярное выражение (?:x)
Это взято из хелпа с этого форума и там написано следующее: Находит x, но не запоминает найденное. Это называется "незапоминающие скобки". Найденная подстрока не сохраняется в массиве результатов и свойствах RegExp.Как и все скобки, объединяют находящееся в них в единый подпаттерн. |
alert( 'ababcdcd'.match(/(?:ab)+(cd)+/) ) |
Ты знаешь как работают скобки в регулярке, чуви? Так вот (?:) работает так же как скобки, но не создает дополнительную группу в результате. Т.е. /^\/request\/index(\.html)?/ => ['/request/index.html', '.html'], /^\/request\/index(?:\.html)?/ => ['/request/index.html'].
|
Цитата:
но... Ахахаха, я даже не знаю, как сказать... Не говорите мне так больше, пожалуйста! Но возвращаясь к теме, спасибо Вам обоим! Мне кажется, что теперь я и это выражение понял и заодно мне стало ясно, как формируется результативный массив. Вот когда возвращается массив с совпавшей строкой и ещё какими-то элементами, то эти элементы и есть ( группы )! А если применить это выражение, то в массиве этой группы не будет! Я правильно понял? |
Цитата:
|
Часовой пояс GMT +3, время: 08:29. |