[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярное выражение
Kusss
	
$stroka = "добавил на склад Футболка «Йоркширский Терьер» w**S****2";

// $pattern = "/.*склад\s(?P<name>.*) w\*\*S\*\*\*\*2/"; // работает
$pattern = "/.*склад\s(?P<name>.*)\s(?P<pol>.{1})\*\*(?P<size>\w{1,4})\*\*(?P<color>\d{1,2})\*\*(?P<number>\d+)$/"; // не работает
preg_match($pattern, $stroka, $parts);
print_r($parts);

Что у меня не так ?



Спустя 54 секунды (12.08.2011 - 22:12) Winston написал(а):
Цитата (Kusss @ 12.08.2011 - 22:11)
Что у меня не так ?

А ты скажи, что тебе надо ?

Спустя 13 минут, 49 секунд (12.08.2011 - 22:26) Kusss написал(а):
разобрать строку: и всё в массив по именам

Спустя 7 минут, 36 секунд (12.08.2011 - 22:33) Winston написал(а):
OMG
А разбить строку по пробелам нельзя ?
$array = preg_split("#\s+#u", $stroka);
echo '<pre>';
print_r($array);
echo '</pre>';

Спустя 7 минут, 34 секунды (12.08.2011 - 22:41) Kusss написал(а):
Не проще . Так как строка может быть и такой
добавил на склад Футболка «Йоркширский и в а» w**S****2

и что тогда делать ?
У меня ошибка где-то в регулярке . Не могу найти

Спустя 7 минут, 10 секунд (12.08.2011 - 22:48) Winston написал(а):
Та твоя регулярка это капец... Черт ногу сломит...
$array = preg_split("#[\s\*_]+#u", $stroka);

Спустя 9 минут, 29 секунд (12.08.2011 - 22:58) Kusss написал(а):
$pattern = "/.*склад\s(?P<name>.*)\s.*/";

Вот это например выдергивает имя и любой

добавил на склад Футболка «вав ку ук » m**M****1
добавил на склад Футболка «у кцук цук » m**L****1

Спустя 3 минуты, 4 секунды (12.08.2011 - 23:01) Winston написал(а):
Ты можешь показать всю строку с которой ты пытаешься выдернуть инфу...
Потому, что в твоем паттерне какие-то непонятные теги и они обязательные т.к. нету ? в шаблоне. И в строке этих тегов нету....



Спустя 5 минут, 20 секунд Winston написал(а):
А вообще с твоего второго поста нифига не понятно, что ты хочешь ?

Спустя 15 минут, 47 секунд (12.08.2011 - 23:16) Kusss написал(а):
Уф , я разобрался почему у меня не работало
$pattern = "/.*склад\s(?P<name>.*)\s(?P<pol>.{1})\*\*(?P<size>\w{1,4})\*\*(?P<color>\d{0,2})\*\*(?P<number>\d+)$/";
// (?P<color>\d{0,2}) - здесь значение пустое, а у меня до этого стояло от 1 до 2 цифр

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.