我想用空格替换[a-zA-Z0-9\-]
以外的字符串中的所有字符。
我找到this post并且无论我调整REGEX多少次,我都无法得到它“不匹配[a-zA-Z0-9-],只匹配和替换其他人物“。
目前,我有以下内容:
$original_name = trim(' How to get file creation & modification date/times in Python? ');
$replace_strange_characters = preg_replace("/^((?!([a-zA-Z0-9\-]+)*))$/", " ", $original_name);
// Returns: How to get file creation & modification date/times in Python?
echo $replace_strange_characters;
我希望它用空格''替换所有奇怪的字符,因此返回:
How to get file creation modification date times in Python?
我真的在努力应对这些“不匹配”的情景。
到目前为止,这是我的代码:http://tehplayground.com/#2NFzGbG7B
答案 0 :(得分:2)
你可以试试这个(你提到你要保持破折号)
$original_name = trim(' How to get file creation & modification date/times in Python? ');
$replace_strange_characters = preg_replace('/[^\da-z-]/i', ' ', $original_name);
echo $replace_strange_characters;
<德尔> DEMO. 德尔>
答案 1 :(得分:0)
这个正则表达式不会这样做吗?
[^a-zA-Z0-9\-]
哦,你为什么这么做?
答案 2 :(得分:0)
试试这个
$replace_strange_characters = preg_replace("([^a-zA-Z0-9\-\?])", " ", $original_name);
上一个答案删除了?