PHP строка заменить / удалить - PullRequest
1 голос
/ 26 ноября 2011

Скажите, у меня есть строки: "Sports Car (45%)" или "Truck (50%)", как я могу преобразовать их в "Sports_Car" и "Truck".

Я знаю о str_replace или о чем угодно, но как мне обрезать скобки и цифры с конца? Это та часть, с которой я борюсь.

Ответы [ 4 ]

1 голос
/ 26 ноября 2011

Здесь есть несколько вариантов, но я бы сделал один из них:

// str_replace() the spaces to _, and rtrim() numbers/percents/brackets/spaces/underscores
$result = str_replace(' ','_',rtrim($str,'01234567890%() _'));

или

// Split by spaces, remove the last element and join by underscores
$split = explode(' ',$str);
array_pop($split);
$result = implode('_',$split);

, или вы можете использовать один из тысячи подходов с регулярными выражениями, какПредложено другими ответами.

Решение о том, какой подход использовать, зависит от того, как именно отформатированы ваши строки и насколько вы уверены, что формат всегда останется прежним.Подход regex потенциально более сложен, но может обеспечить более детальный контроль в долгосрочной перспективе.

1 голос
/ 26 ноября 2011

Вы можете сделать:

$s = "Sports Car (45%)";
$s = preg_replace(array('/\([^)]*\)/','/^\s*|\s*$/','/ /'),array('','','_'),$s);

Посмотреть

0 голосов
/ 26 ноября 2011

Вы можете сделать это, используя Explode:

<?php
$string = "Sports Car (45%)";
$arr = explode(" (",$string);
$answer = $arr[0];
echo $answer;
?>
0 голосов
/ 26 ноября 2011

Простое регулярное выражение должно быть в состоянии достичь этого:

$str = preg_replace('#\([0-9]+%\)#', '', $str);

Конечно, вы также можете использовать strstr() для поиска (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...