使用preg_replace删除所有非字母数字字符

时间:2012-07-04 00:38:25

标签: php regex preg-replace

如何从PHP中的字符串中删除所有非字母数字字符?

这是我正在使用的代码:

$url = preg_replace('/\s+/', '', $string);

它只替换空格。

6 个答案:

答案 0 :(得分:114)

$url = preg_replace('/[^\da-z]/i', '', $string);

答案 1 :(得分:18)

首先,我就是这样做的

$str = 'qwerty!@#$@#$^@#$Hello%#$';

$outcome = preg_replace("/[^a-zA-Z0-9]/", "", $str);

var_dump($outcome);
//string(11) "qwertyHello"

希望这有帮助!

答案 2 :(得分:14)

不确定为什么没有人建议这样做,但这似乎是最简单的正则表达式:

preg_replace("/\W|_/", "", $string)

您也可以在此处看到它:http://phpfiddle.org/lite/code/0sg-314

答案 3 :(得分:4)

preg_replace('/[\s\W]+/', '', $string)

似乎工作,实际上这个例子是在preg_replace上的PHP文档中

答案 4 :(得分:3)

$alpha = '0-9a-z'; // what to KEEP
$regex = sprintf('~[^%s]++~i', preg_quote($alpha, '~')); // case insensitive

$string = preg_replace($regex, '', $string);

答案 5 :(得分:3)

你可以使用,

import matplotlib.pyplot as plt
import numpy as np

#arguments are shape: 1=row; 100=columns
x = np.random.rand(1, 100)
y = np.cos(x)

#bars
plt.bar(x, y, label='Bars1', color='pink')

#legends
plt.legend()

#show the figure
plt.show()

您可以使用unicode字符,

$url = preg_replace('/[^\da-z]/i', '', $string);