我试图通过正则表达式删除除字母数字字符外的所有字符&空间。
这是我希望实现的转换。
"I am a string" → "I am a string"
"How are you?" → "How are you"
"#53-Jeff" → "53-Jeff"
到目前为止,我有这个:
return preg_replace("/[^0-9a-zA-Z]/","", $val);
但是作为一个正则表达式新手,我不知道如何插入一个空格。
插入空格就像你期望的那样简单:
preg_replace("/[^0-9a-zA-Z ]/", "", $val);
顺便说一句。你的第三个例子我不太明白:你也要更换-
吗?如果没有,你也需要把它添加到字符列表中。
应该可以:
preg_replace("/[^0-9a-zA-Z -]/", "", $val);
请记住在字符集块的末尾添加"-",否则它可能被解释为范围操作符。
根据您的regex标志(如果启用空白/注释),您可能需要将" "
(在"-"
之前)替换为"'s"
或(更严格)"' "
。