Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #91 (permalink)  
Старый 31.07.2012, 22:10
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

/(.+)(?=\1*,\1+$)/

это значит - получаем символы (кроме пробела), за которыми следует такое же количество символов нуль или более раз, затем идет запятая, затем следует опять то количество символов один или несколько раз, которые находятся в конце входных данных))) Я понятно обьяснил?
Ответить с цитированием
  #92 (permalink)  
Старый 31.07.2012, 22:13
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Hekumok,
неа,
Цитата:
это значит - получаем символы (кроме пробела), за которыми следует такое же количество символов нуль или более раз, затем идет запятая,
это я понял это и есть (.+)(\1*,) а конец как то ты странно объяснил
Ответить с цитированием
  #93 (permalink)  
Старый 31.07.2012, 22:16
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Dim@, я постараюсь объяснить. Вы понимаете как работают обратные ссылки? Они ловят ту же подстроку, которая была поймана в захватывающие скобки с указанным порядковым номером.
/
  (.+) // ловит несколько звёдочек (допустим, n)
  (?=\1* // количество звёздочек, кратное n, \1 ловит ту же подстроку, которая была захвачена в (.+)
  , //символ запятая
  \1+ //количество звёздочек, кратное n
  $ //конец входящей строки
/

Следовательно, поиск удаётся только когда n является общим делителем количества звёздочек слева и справа от запятой. Поскольку использовался жадный квантификатор, то интерпретатор остановился на наибольшем общем делителе указанных чисел.
(.+) действительно вначале проверяет всю входящую строку, но дальше поиск не удаётся, поэтому постепенно сокращает количество в квантификаторе.

Последний раз редактировалось oneguy, 31.07.2012 в 22:19.
Ответить с цитированием
  #94 (permalink)  
Старый 31.07.2012, 22:19
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

Сообщение от Dim@ Посмотреть сообщение
в общем я то думал что хорошо знаю реги (они мне в отличии от других людей быстро и понятно давались
Как по мне, то ничего сложного в регах нет...прочитал про нихэту и эту статью - ничего сложного не увидел...вот хотел потренироваться на них...
Ответить с цитированием
  #95 (permalink)  
Старый 31.07.2012, 22:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

oneguy,
Хотя с точки зрения скоростной оптимальности- это лишь кубик рубик интелекта
при больших числах наверняка - ток массивы и циклы ?
Ответить с цитированием
  #96 (permalink)  
Старый 31.07.2012, 22:24
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

oneguy,
Цитата:
Вы понимаете как работают обратные ссылки?
Да и часто ими пользовался в регах
oneguy,
спасибо
Ответить с цитированием
  #97 (permalink)  
Старый 31.07.2012, 22:26
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от Deff
oneguy,
Хотя с точки зрения скоростной оптимальности- это лишь кубик рубик интелекта
при больших числах наверняка - ток массивы и циклы ?
Ну разумеется, данный алгоритм не следует применять в реальных задачах. Наибольший общий делитель нужно считать алгоритмом Евклида.
Ответить с цитированием
  #98 (permalink)  
Старый 31.07.2012, 22:27
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от oneguy
Наибольший общий делитель нужно считать алгоритмом Евклида.
Спс
Ответить с цитированием
  #99 (permalink)  
Старый 31.07.2012, 22:34
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

Сообщение от oneguy Посмотреть сообщение
Dim@, я постараюсь объяснить. Вы понимаете как работают обратные ссылки? Они ловят ту же подстроку, которая была поймана в захватывающие скобки с указанным порядковым номером.
/
  (.+) // ловит несколько звёдочек (допустим, n)
  (?=\1* // количество звёздочек, кратное n, \1 ловит ту же подстроку, которая была захвачена в (.+)
  , //символ запятая
  \1+ //количество звёздочек, кратное n
  $ //конец входящей строки
/

Следовательно, поиск удаётся только когда n является общим делителем количества звёздочек слева и справа от запятой. Поскольку использовался жадный квантификатор, то интерпретатор остановился на наибольшем общем делителе указанных чисел.
(.+) действительно вначале проверяет всю входящую строку, но дальше поиск не удаётся, поэтому постепенно сокращает количество в квантификаторе.
Во, oneguy вабще отлично объяснил)))
Ответить с цитированием
  #100 (permalink)  
Старый 31.07.2012, 22:40
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

oneguy,
интересно мне почему он ищет кратное n, а не общее наибольшое n?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо скрыть ссылки, кроме ведущих на изображения Keksman jQuery 4 04.03.2012 20:17
overflow:auto и #-ссылки vania-pooh (X)HTML/CSS 3 02.01.2011 21:16
Регулярное выражение, замена ссылки к файлу на имя файла libinstyle Events/DOM/Window 2 19.07.2010 17:50
ссылки получали стиль "visited" только на время сессии alexandr_poskrobka Серверные языки и технологии 7 10.03.2010 08:48
ССЫЛКИ (Помогите новичку) meggen (X)HTML/CSS 8 30.11.2009 10:51