Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.08.2013, 23:36
Интересующийся
Отправить личное сообщение для sbudyakov Посмотреть профиль Найти все сообщения от sbudyakov
 
Регистрация: 30.08.2012
Сообщений: 11

Помогите, пожалуйста, составить регулярное выражение
Здравствуйте! 4 день не могу решить проблему! Мне нужно split'ом разбить строку на пробелы, но не разбивать их внутри кавычек. Привожу пример:
Исходная строка: (page1 page2 page3-"page3_1 page 3_2 page3_3" page4)
Должно разбиться на массив: (page1,page2,page3-"page3_1 page3_2 page3_3",page4)

И еще... Кавычки могут быть и одинарные и двойные. И перед последнй скобкой может стоять &. Подскажите как сделать, ну или хотя бы в каком направлении копать.
Ответить с цитированием
  #2 (permalink)  
Старый 05.08.2013, 23:38
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

регулярные выражения сплит тоже принимает http://javascript.ru/String/split
ну и соответственно приведите свою попытку решения проблемы
Ответить с цитированием
  #3 (permalink)  
Старый 05.08.2013, 23:46
Интересующийся
Отправить личное сообщение для sbudyakov Посмотреть профиль Найти все сообщения от sbudyakov
 
Регистрация: 30.08.2012
Сообщений: 11

В том то и дело, что кое как получается большим количеством функций (и то, коряво). А регуляркой даже приблизительно не получается. Пробовал разбивать по пробелам, а потом, перебирая массив, смотреть соседние строки. Если в них есть -" и ", то объединить. Просто, код на другом компьютере и я не могу его сейчас выложить сюда.
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2013, 00:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

sbudyakov,

var str =  "(page1 page2 page3-'page3_1 page 3_2 page3_3' page4)";
alert(str.match(/\S+["'][\S\s]+?["']|\S+/g));
str = '(page1 page2 page3-"page3_1 page 3_2 page3_3" page4&)'
alert(str.match(/\S+["'][\S\s]+?["']|\S+/g));
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2013, 00:09
Интересующийся
Отправить личное сообщение для sbudyakov Посмотреть профиль Найти все сообщения от sbudyakov
 
Регистрация: 30.08.2012
Сообщений: 11

рони,
Спасибо огромнейшее!!!
Ответить с цитированием
  #6 (permalink)  
Старый 07.08.2013, 22:51
Интересующийся
Отправить личное сообщение для sbudyakov Посмотреть профиль Найти все сообщения от sbudyakov
 
Регистрация: 30.08.2012
Сообщений: 11

Вопрос можно считать закрытым. Хочу только сказать, что выражение немого доделал. Для поиска слов в кавычках без пробелов лучше использовать такое выражение: \S+?["'][\S\s]+?["']|\S+.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите составить регулярное выражение для числа с плавающей точкой boomrest Общие вопросы Javascript 4 25.02.2015 11:17
Составить регулярное выражение для гугла alerzo Events/DOM/Window 1 18.02.2013 16:55
Помогите составить регулярное выражение Ucorp Общие вопросы Javascript 1 17.10.2012 16:28
Составьте пожалуйста регулярное выражение didfree jQuery 4 21.07.2012 15:48
регулярное выражение, помогите serhanters jQuery 2 12.07.2011 10:14