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 に答える