2013-04-15 3 views
0

У меня проблема с регулярными выражениями в PHP.Анализ строки в строке php

У меня есть строка: «NAPLAK ROSSO + S.ARG. + LACC.ARG. + NK», все эти слова содержат такие опции, как ROSSO, S.ARG, цвета ROSSO = красный, s.arg = серебристый и так далее.

Из этой строки мне нужно, чтобы создать описание как:

Материал: Naplak, Цвет: красный, серебряный .... ....

Я думал, что там происходит быть массивом с laguage кодами что-то вроде этого:

$options = array(
    "ROSSO" => "COLOR_RED", 
    "S.ARG" => "COLOR_SILVER" 
); 

Не могли бы вы помочь мне написать регулярное выражение для этой цели?

Лучшие регаты, RussianRoot.

+0

вы не хотите, регулярное выражение здесь, так как есть нет «шаблонов», вы заменяете фактические слова, если есть ошибка в имени цвета (например, отсутствующая буква), даже если не будет выполнено регулярное выражение. Просто используйте str_replace() с несколькими иглами. И вы можете просто использовать взрыв, чтобы разделить их, как @Paul Moldovan предложил и «перевести» цвета с помощью массива. – aleation

ответ

0

Я не думаю, что для этого вам нужно регулярное выражение. Вероятно, проще и быстрее, чтобы сделать что-то вроде:

$item = explode(' ', "NAPLAK ROSSO+S.ARG.+LACC.ARG.+NK"); 
$args = explode('+', $item[1]); 
$item = $item[0]; 

echo $item; 

дает нам "NAPLAK"

print_r($args); 

дает нам:

array(4) [ 'ROSSO', 'S.ARG', 'LACC.ARG.', 'NK' ]; 
0

Если все они ограничены +, то почему бы вам не использовать explode?

Это даст вам массив с каждым элементом, а затем вы сможете делать с ним все, что хотите.

Другой способ - использовать str_replace и заменить «ROSSO» на «COLOR_RED» и так далее.

Смежные вопросы