0

我想删除除 - 之外的所有其他运算符。我从事以下工作,但被困在这里。

$s1 = "Hello@*&^%$#@!)({}[]?.,<> dis$ is. testing -";
$s2 = "- i love% the way. it, works";

for($ii=0;$ii<3;$ii++){

$from = array('/\(|\)/','/\d+ml|\d+g/','/\s+/'); 
$to = array('','','-'); 

$sample=${'s' . $ii}; 

$sample = strtolower(trim(preg_replace($from,$to,$sample),'-')); 
echo $sample."<br>";

}

请在这方面帮助我。

需要输出

hello-dis-is-testing
i-love-the-way-it-works
4

1 回答 1

1
$sample = trim(preg_replace('/\\W+/i', '-', $s1), '-');

此正则表达式用破折号替换除字母和数字之外的所有内容,修剪删除尾随和前面的破折号

于 2012-07-25T15:39:44.993 回答