php字符串替换/删除

时间:2011-11-26 17:29:57

标签: php string replace

说我有字符串:"Sports Car (45%)""Truck (50%)",如何将它们转换为"Sports_Car""Truck"

我知道str_replace或其他什么,但如何剪切括号和数字部分?这是我正在努力的部分。

4 个答案:

答案 0 :(得分:1)

这里有几个选项,但我会做其中一个:

// 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);

或者您可以使用其中一种正则表达式方法中的一种,如其他答案所示。

决定使用哪种方法取决于字符串的确切格式,以及格式将始终保持不变的程度。正则表达式方法可能更复杂,但从长远来看可以提供更精细的控制。

答案 1 :(得分:1)

你可以这样做:

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

See it

答案 2 :(得分:0)

一个简单的正则表达式应该能够实现:

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

当然,您也可以选择使用strstr()来查找(

答案 3 :(得分:0)

你可以使用explode来做到这一点:

<?php
$string = "Sports Car (45%)";
$arr = explode(" (",$string);
$answer = $arr[0];
echo $answer;
?>