我需要一个正则表达式来删除所有非字母数字和空格字符,我有这个
$page_title = preg_replace("/[^A-Za-z0-9 ]/", "", $page_title);
Run Code Online (Sandbox Code Playgroud)
但它不会删除空格字符并用数字替换一些非字母数字字符.
我需要删除puntuation和空格等特殊字符.
如果您只想留下所有字母数字位,您可以使用:
(\W)+
Run Code Online (Sandbox Code Playgroud)
这是一些测试代码:
$original = "Match spaces and {!}#";
echo $original ."<br>";
$altered = preg_replace("/(\W)+/", "", $original);
echo $altered;
Run Code Online (Sandbox Code Playgroud)
这是输出:
匹配空格和{!}#
Matchspacesand
这是解释:
第一个捕获组:(\W)匹配任何非单词字符[^ a-zA-Z0-9_]
量词:+在一次和无限次之间,尽可能多次,根据需要返回[贪心]