Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 31.10.2013 16:08:16

Бьюсь второй день. Нужна помощь с регуляркой

Делаю парсинг экселевского документа. Есть массив и элемент со значением в нем:

94,8*63,2 R-4767 декор настенный комплект (пано из 3 шт.)
25*75 Boiserie Aston Relieve Плитка Настенная
40*60 Decor Candy Peonia Комплект (2 шт.) Декор Настенный

Как видим они бывают разные, иногда попадаются в середине (2шт), иногда в конце, а иногда этой части вовсе нет. Мне же нужно разбить строку на формат - это то, что первыми цифрами со звездочкой (94,8*63,2), коллекцию - это то, что латинскими буквами и типу - это то, что кириллицей. Помогите составить регулярное выражение которое разбивает массив на нужные мне значения. Можно даже так сначала извлечь формат и занести его в одну переменную, потом коллекцию в другую и тип в другую.

Не в сети

#2 31.10.2013 16:43:42

Re: Бьюсь второй день. Нужна помощь с регуляркой

У тебя прайс — одна колонка? Обычно характеристики в одной, описания в другой, цена в третьей и т.п. Если есть колонки, то куда проще и без регулярки.

Я, кстати, когда-то написал класс для разбора таких вещей из Excel, есть на Github.

Не в сети

#3 31.10.2013 18:09:22

umarov001

Re: Бьюсь второй день. Нужна помощь с регуляркой

Это все одна строка. В этом и дело. Если бы это было в одной колонке  бы вас не доставал

#4 31.10.2013 19:08:14

Re: Бьюсь второй день. Нужна помощь с регуляркой

Я не совсем понимаю, что тебе нужно из данных, которые в строке, да и похоже, что проще обойтись без регулярок, а просто разбивать строку на пробелы — первый элемент код, потом все части с латиницей — коллекция и т.п. Формат слишком свободный или ты не достаточно описал задачу.

Не в сети

#5 01.11.2013 13:28:09

umarov001

Re: Бьюсь второй день. Нужна помощь с регуляркой

С этим разобрался. Теперь следующее. Есть строка "Boiserie Aston Relieve", мне не нужна эта строка полностью. Я например вытаскиваю название продукта из БД, допустим продукт называется Aston Relieve, но он может называться и просто Aston или Boiserie Aston. Есть ли какая нибудь функция, чтобы вытащить из "Boiserie Aston Relieve" нужную мне часть? Я шарился по php функциям работы со строками но нечего не нашел, некоторые функции просто не работают

#6 01.11.2013 13:56:23

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: Бьюсь второй день. Нужна помощь с регуляркой

Без четкой структуры или словаря искомых данных у вас не выйдет вытянуть нужные данные.

Не в сети

#7 01.11.2013 17:31:13

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: Бьюсь второй день. Нужна помощь с регуляркой

Вы случайно не девушка? Демонстрируете женскую логику. "Мне нужно то, а может и не то, я попробовала, у меня не получилось, ничего не работает, все дебилы". Правильно заданный вопрос это уже половина ответа, а от ваших вопросов хочется ударить вопрошающего по морде лица чем-нибудь тяжелым.

Не в сети

#8 01.11.2013 19:26:42

umarov001

Re: Бьюсь второй день. Нужна помощь с регуляркой

Cheshirrski пишет:

Вы случайно не девушка? Демонстрируете женскую логику. "Мне нужно то, а может и не то, я попробовала, у меня не получилось, ничего не работает, все дебилы". Правильно заданный вопрос это уже половина ответа, а от ваших вопросов хочется ударить вопрошающего по морде лица чем-нибудь тяжелым.

Помоему как раз вы и есть девушка

#9 03.11.2013 08:02:54

Re: Бьюсь второй день. Нужна помощь с регуляркой

Я скорее согласен с Cheshirrski. Определитесь сначала, что у вас за формат данных, где какие попадаются строки и что из них нужно извлечь. На вопрос «функции для вытаскивания часть строки» можно ответить так же широко: preg_match(), explode(), substr() и всё прочее, что вы знаете.

Не в сети

#10 05.11.2013 22:02:56

umarov001

Re: Бьюсь второй день. Нужна помощь с регуляркой

preg_match помог, просто я запарился. Прошу пращение

Подвал раздела