Регулярного выражения: помощь в парсинге строки
560 703786 - Моноблок 32+4 прямой 749 712667 - Мет. вертикальная планка на 10 крючков 834 718004 - Дисплей-паразит Non Gum широкий 605 704018 - Основание плоское И 00 14 606 704021 - Настенное крепление 648 704827 - Поворотная нога для И360
Однако убирается только самое первое совпадение:
703786 - Моноблок 32+4 прямой 749 712667 - Мет. вертикальная планка на 10 крючков 834 718004 - Дисплей-паразит Non Gum широкий 605 704018 - Основание плоское И 00 14 606 704021 - Настенное крепление 648 704827 - Поворотная нога для И360
Но вобщем, при помощи браузера и консоли я решил этот вопрос так:
Код:
var p = /([^\d])(\d{3})(?=\x20)/g;
var s = ' 560 703786 - Моноблок 32+4 прямой 749 712667 - Мет. вертикальная планка на 10 крючков 834 718004 - Дисплей-паразит Non Gum широкий 605 704018 - Основание плоское И 00 14 606 704021 - Настенное крепление 648 704827 - Поворотная нога для И360';
console.log(s.replace(p, '').replace(/\x20/, ''));
var s = ' 560 703786 - Моноблок 32+4 прямой 749 712667 - Мет. вертикальная планка на 10 крючков 834 718004 - Дисплей-паразит Non Gum широкий 605 704018 - Основание плоское И 00 14 606 704021 - Настенное крепление 648 704827 - Поворотная нога для И360';
console.log(s.replace(p, '').replace(/\x20/, ''));
Чуток поясню: ищем три цифры, у которых перед ними всё что угодно кроме цифр, а после - пробел (\x20).
Единственное что нужно сделать - добавить пробел перед строкой, иначе этот паттерн не отработает "560" в начале. Наверное, и этому есть какое-то решение без пробела...
чит в пробеле перед началом строки, который был самовольно поставлен. но в целом решение подходит.
поскольку пришлось решать это в асп.нете, то я сделал несколько проще: ( \d{3} ) - результат проверяю на калькуляторе