我有以下preg_replace替换的符号:
$replace = '/[^a-zA-Z0-9]/';
在我的代码中我使用:
print "<a href='".preg_replace($replace, '-', $p->name)."-pr-".$p->id.".html'>";
以上结果如下:
Apple-iPad-2-Wi-Fi---3G-16GB-White-Tablet---MC982NFA-p-110341697.html
我只需要用一个“ - ”替换上面描述的符号,我需要做什么,如下例所示:
Apple-iPad-2-Wi-Fi-3G-16GB-White-Tablet-MC982NFA-p-110341697.html
答案 0 :(得分:4)
只需在表达式中添加+
即可匹配或更多出现的情况:
$replace = '/[^a-zA-Z0-9]+/';
尽管表达式可以缩短为:
$replace = '/[\W_]+/';
答案 1 :(得分:1)
尝试$replace = '/[^a-zA-Z0-9]+/';
。
答案 2 :(得分:1)
preg_replace("/\.\s|[^a-zA-Z\.\-0-9]+/", "-", $raw)
它将取代.
和白色空间或任何其他字符 -
所以Dot和Space将替换为Single Dash
答案 3 :(得分:0)
添加另一个替代品以替换任何重复 - 单个 - 。
preg_replace("|-+|g", "-");