说我有字符串:"Sports Car (45%)"
或"Truck (50%)"
,如何将它们转换为"Sports_Car"
和"Truck"
。
我知道str_replace
或其他什么,但如何剪切括号和数字部分?这是我正在努力的部分。
答案 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);
答案 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;
?>