現在、この正規表現を使用して、文字列から英数字以外のすべての文字を置き換え、それらをダッシュに置き換えています
$newString = preg_replace("/[^a-z0-9.]+/i", "-", $string);
これは、次の文字列に対して正常に機能します。
$string = "this will work fine";
$newString = "this-will-work-fine";
しかし、文字列の最後の文字が英数字ではない場合、疑うように一致して置換されます。
$string = "How can I fix this?";
$newString = "How-can-I-fix-this-";
この正規表現を改善して、次の出力を得るにはどうすればよいですか?
$newString = "How-can-I-fix-this";
正規表現はどちらの場合でも機能するはずです。別の関数を使用して文字列を切り詰めることができることはわかっていますが、理想的には 1 つの正規表現を使用したいと考えています。これは可能ですか?