Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Обработка простейшего Regexp (https://javascript.ru/forum/dom-window/23113-obrabotka-prostejjshego-regexp.html)

ArmagedDance 12.11.2011 15:51

Обработка простейшего Regexp
 
Помогите правильно обработать строку регулярными выражениями.
На входе получаю строку из excel, там ячейки разделены табуляционными символами.
Надо на выходе получить массив из совпадений в regexp.

Регулярка следующая:
var name_regex=/([\s])+[\S^,.]+([\s])+/g;

Она не возвращает некоторые поля, не знаю почему, помогите модифицировать.
Регулярка должна вернуть совпадения, разделенные блоками посредством табуляции(не пробелами).

Образец строки:
<pre>
0729	Перец черный горошек, 500 гр	Pepe nero grani da gr.500	6	500 гр	шт.	687,08	Via delle Indie
</pre>

ArmagedDance 12.11.2011 16:25

Подскажите, как получить все символы табуляции кроме пробельного?

trikadin 12.11.2011 16:42

Так, не? Проблема в том, что тут они отображаются как несколько пробелов.
str= "0729    Перец черный горошек, 500 гр    Pepe nero grani da gr.500   6   500 гр  шт. 687,08  Via delle Indie";
alert(str.split(/\s\s\s*/));

ArmagedDance 12.11.2011 17:19

Цитата:

Сообщение от trikadin (Сообщение 136047)
Так, не? Проблема в том, что тут они отображаются как несколько пробелов.
str= "0729    Перец черный горошек, 500 гр    Pepe nero grani da gr.500   6   500 гр  шт. 687,08  Via delle Indie";
alert(str.split(/\s\s\s*/));

У меня расстояния между блоками в один табуляционный символ (или в длинный пробел, хз) и ваша регулярка не помогла :((
видимо три пробела уже тут, на javascript.ru появились

trikadin 12.11.2011 18:43

nasqad, а вы проверили, не? В той строке, которую он привёл как пример - не табуляционные символы, а несколько пробелов...

ArmagedDance, попробуйте так...
str= "0729    Перец черный горошек, 500 гр    Pepe nero grani da gr.500   6   500 гр  шт. 687,08";
str+="\tVia delle Indie";
alert(str.split(/(?:\s\s\s*)|\t/));


Часовой пояс GMT +3, время: 15:59.