Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2014, 22:48
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

Что означает выражение (?:x)
Объясните на примере, что означает регулярное выражение (?:x)
Это взято из хелпа с этого форума и там написано следующее:
Находит x, но не запоминает найденное. Это называется "незапоминающие скобки". Найденная подстрока не сохраняется в массиве результатов и свойствах RegExp.Как и все скобки, объединяют находящееся в них в единый подпаттерн.
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2014, 23:00
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

alert( 'ababcdcd'.match(/(?:ab)+(cd)+/) )
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2014, 23:04
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Ты знаешь как работают скобки в регулярке, чуви? Так вот (? работает так же как скобки, но не создает дополнительную группу в результате. Т.е. /^\/request\/index(\.html)?/ => ['/request/index.html', '.html'], /^\/request\/index(?:\.html)?/ => ['/request/index.html'].
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2014, 23:22
Кандидат Javascript-наук
Отправить личное сообщение для riva Посмотреть профиль Найти все сообщения от riva
 
Регистрация: 24.06.2013
Сообщений: 115

Сообщение от ixth
Ты знаешь как работают скобки в регулярке, чуви?
Из всех Ваших слов, я вижу только ЧУВИ)))) Вот на ЧУВАК, я бы ещё промолчал,
но... Ахахаха, я даже не знаю, как сказать... Не говорите мне так больше, пожалуйста!

Но возвращаясь к теме, спасибо Вам обоим! Мне кажется, что теперь я и это выражение понял и заодно мне стало ясно, как формируется результативный массив. Вот когда возвращается массив с совпавшей строкой и ещё какими-то элементами, то эти элементы и есть ( группы )! А если применить это выражение, то в массиве этой группы не будет! Я правильно понял?
Ответить с цитированием
  #5 (permalink)  
Старый 05.08.2014, 01:24
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Цитата:
А если применить это выражение, то в массиве этой группы не будет!
Да, поэтому оно называется non-matching group. Группировка есть, в матч не попадает.

Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мотоциклисты есть? l-liava-l Оффтопик 13 04.07.2014 13:35
Что означает эта запись? Сергей85 Общие вопросы Javascript 3 13.12.2011 15:10
Как (эффективно) изучать JavaScript? JSTalker Общие вопросы Javascript 33 23.12.2010 03:13
Что означает такой вызов? ksa jQuery 0 21.12.2010 13:45
Zend и Pear для нуба mycoding Серверные языки и технологии 52 13.12.2010 18:32