請問如何把一串字的所有符號或空白都替換成 「-」呢
包括,?@%!$&*(什麼的)
$result = preg_replace('/[^\w]|[_]/', '「-」', $str);
匹配替换非字母数字并替换。\w
包括_
,如果想一并替换掉,再添加上 |[_]
。
回评论:
如果想替换除中英文外的其他字符的话,pattern改为下列形式:/[^\bA-Za-z\x{4e00}-\x{9fa5}]/u
b 表示空格;\u4e00-\u9fa5
是unicode里中文的表示法,但preg_replace不支持\u
的写法,可以使用 \x{XXXX}
来替代;
最后使用u
选项来表示用的是utf-8字符集。
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答750 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.3k 阅读
1 回答694 阅读✓ 已解决
preg_replace是一种方法,这里我提供另外一种方法,参看下面代码