我想删除除 - 之外的所有其他运算符。我在以下工作,但坚持到这里。
$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
答案 0 :(得分:1)
$sample = trim(preg_replace('/\\W+/i', '-', $s1), '-');
这个正则表达式用短划线替换除字母和数字之外的所有内容,修剪删除尾随和前面的短划线