Forum Webscript.Ru
Программирование => PHP => Тема начата: kiruxa от 21 Января 2008, 13:23:53
-
Добрый день
есть у меня такая задачка
нужно разсплитовать строку в масив по знакам препинания
при
чтото типа аналога explod\'a
например есть строка -
$STR ="1998 Ferrari F355 Spider!! Giallo Modena
(Yellow) with Black (Nero) Leather
Interior! Only 16,450 Miles. This 1998
F355 Spider is in excellent condition
and comes with ALL service records from
an authorized Ferrari dealership!";
Массив разбивания допустим...
$split_array=(",",".","!","?");
но надо сделать так чтобы знаки препинания остались в конце элемента массива...
спасибо
-
$STR ="1998 Ferrari F355 Spider!! Giallo Modena
(Yellow) with Black (Nero) Leather
Interior! Only 16,450 Miles. This 1998
F355 Spider is in excellent condition
and comes with ALL service records from
an authorized Ferrari dealership!";
$split_array=array(",","\\.","!\\s","\\?",\'$\');
$reg=\'/.+?(\'.implode(\'|\',$split_array).\')/\';
$STR=str_replace("\\n",\' \',$STR);
preg_match_all($reg,$STR,$mach);
print_r($mach);
Вот приблизительно, еще доработать по вкусу и готово. Например что делать с двойным "!!" и так далие...
-
Altaxar
Warning: preg_match_all() [function.preg-match-all]: Compilation failed: nothing to repeat at offset 11 in...
kiruxa
что мешает сделать все традиционным методом, тем что предлагает PHP?
foreach() (http://www.php.net/manual/en/control-structures.foreach.php)
explode() (http://www.php.net/manual/en/function.explode.php)
str_replace() (http://www.php.net/manual/en/function.str-replace.php)
-
сделал как написал Altaxar вроде пока работает.... поставил только чтобы проверяло на пустые строки....
я тоже думал "традиционным методом" но это долго. и некрасиво... согласен что надежно... но preg_match_all мне больше нравицо
-
Altaxar - Спасибо
-
kiruxa
ну, что же смотри как удобнее.
тема закрыта