-1

我想[a-zA-Z0-9\-]用空格替换字符串中的所有字符。

我找到了这篇文章,无论我调整 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

4

3 回答 3

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;

演示。

于 2013-10-25T16:19:57.500 回答
0

这个正则表达式不会这样做吗?

[^a-zA-Z0-9\-]

哦,顺便说一句,你为什么要这样做?

于 2013-10-25T16:20:11.370 回答
0

尝试这个

$replace_strange_characters = preg_replace("([^a-zA-Z0-9\-\?])", " ", $original_name);

上一个答案去掉了?

于 2013-10-25T16:21:11.050 回答