我试图通过正则表达式删除除字母数字字符和空格之外的所有字符.
这是我希望实现的转换.
"I am a string" ? "I am a string"
"How are you?" ? "How are you"
"#53-Jeff" ? "53-Jeff"
Run Code Online (Sandbox Code Playgroud)
到目前为止我有这个:
return preg_replace("/[^0-9a-zA-Z]/","", $val);
Run Code Online (Sandbox Code Playgroud)
但作为一个正则表达式的新手,我无法弄清楚如何插入空格.我尝试的时候结果很奇怪.
pok*_*oke 25
插入空格就像您期望的那样简单:
preg_replace("/[^0-9a-zA-Z ]/", "", $val);
Run Code Online (Sandbox Code Playgroud)
顺便说一句.你的第三个例子对我来说不清楚:你想替换它-吗?如果没有,您还需要将其添加到角色列表中.
有关正在运行的示例,请参阅此
这应该工作:
preg_replace("/[^0-9a-zA-Z -]/", "", $val);
Run Code Online (Sandbox Code Playgroud)
请记住在字符集块的最后添加" - ",否则它可能会被解释为范围运算符.
根据您的正则表达式标志(如空白/注释),因此您可能需要替换" "(右前"-")有"\s"或(更严格)"\ ".