PHP替换[a-zA-Z0-9 \ - ]以外的所有字符

时间:2013-10-25 16:12:06

标签: php regex

我想用空格替换[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

3 个答案:

答案 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);

上一个答案删除了?