Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Split строки по запятой
 
 автор: Bernex   (25.04.2014 в 16:40)   письмо автору
 
 

Есть строка: " linear, ease-out" ее превратить в массив просто

А вот превратить в массив учитывая еще и такой вариант:
"ease,cubic-bezier(0, 0, 1, 1), cubic-bezier(0, 0, 1, 1), linear"
в
["ease", "cubic-bezier(0, 0, 1, 1)", "cubic-bezier(0, 0, 1, 1)", "linear"]

Задачу решаю в JavaScript.
Как?

  Ответить  
 
 автор: Igorek   (25.04.2014 в 17:15)   письмо автору
 
   для: Bernex   (25.04.2014 в 16:40)
 

Для частного случая сойдет такой вариант:
"ease,Cubic-bezier(0, 0, 1, 1), cubic-bezier(0, 0, 1,1), linear".split(/,(?=(?:\s\D)|[a-zA-Z])/)

но, видимо, для общего надо будет дорабатывать регулярку

  Ответить  
 
 автор: Deed   (12.05.2014 в 23:06)   письмо автору
 
   для: Igorek   (25.04.2014 в 17:15)
 

/(?<=\D),/g

Но так как у нас JS, то:
/,(?!(|\s)\d)/g

http://jsbin.com/tugay/1/edit?js,output

  Ответить  
 
 автор: duhon   (14.05.2014 в 20:21)   письмо автору
 
   для: Deed   (12.05.2014 в 23:06)
 

а зачем
 /,(?!(|\s)\d)/g
а не так
/,(?!\s?\d)/g

  Ответить  
 
 автор: Deed   (14.05.2014 в 21:52)   письмо автору
 
   для: duhon   (14.05.2014 в 20:21)
 

А если перед цифрой пробела не будет?

  Ответить  
 
 автор: duhon   (15.05.2014 в 10:56)   письмо автору
 
   для: Deed   (14.05.2014 в 21:52)
 

сработает знак вопроса \s?\d

  Ответить  
 
 автор: Deed   (15.05.2014 в 13:42)   письмо автору
 
   для: duhon   (15.05.2014 в 10:56)
 

Естественно.

  Ответить  
 
 автор: duhon   (15.05.2014 в 14:01)   письмо автору
 
   для: Deed   (15.05.2014 в 13:42)
 

если это "естественно" так зачем
(|\s)
а не
\s?

тут либо так сложилось при написании регулярки, либо есть какой то сокральный смысл использовать такую незаурядную конструкцию. Если есть какой то смысл то мне интересно в этом разобраться.

  Ответить  
 
 автор: Deed   (15.05.2014 в 14:47)   письмо автору
 
   для: duhon   (15.05.2014 в 14:01)
 

Каждый борется со скукой как хочет. Сакрального и эзотерического смысла нет, просто вписал первое, что пришло на ум.
Кстати, в конкретно этом примере (|\s) даст некорректный результат. Именно из-за лишней группы.
Инцидент исчерпан?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования