【发布时间】:2012-07-04 11:35:53
【问题描述】:
如何从 PHP 中的字符串中删除所有非字母数字字符?
这是我目前正在使用的代码:
$url = preg_replace('/\s+/', '', $string);
它只替换空格。
【问题讨论】:
-
@mario:这有点不同,因为它处理的是 Unicode。我确信存在一个完美的副本......
标签: php regex preg-replace
如何从 PHP 中的字符串中删除所有非字母数字字符?
这是我目前正在使用的代码:
$url = preg_replace('/\s+/', '', $string);
它只替换空格。
【问题讨论】:
标签: php regex preg-replace
$url = preg_replace('/[^\da-z]/i', '', $string);
【讨论】:
一开始我会这样做
$str = 'qwerty!@#$@#$^@#$Hello%#$';
$outcome = preg_replace("/[^a-zA-Z0-9]/", "", $str);
var_dump($outcome);
//string(11) "qwertyHello"
希望这会有所帮助!
【讨论】:
不知道为什么没有其他人建议这样做,但这似乎是最简单的正则表达式:
preg_replace("/\W|_/", "", $string)
您也可以在这里看到它的实际效果:http://phpfiddle.org/lite/code/0sg-314
【讨论】:
preg_replace("/[\W_]+/", "", $string)。
你可以使用,
$url = preg_replace('/[^\da-z]/i', '', $string);
您可以用于 unicode 字符,
$url = preg_replace("/[^[:alnum:][:space:]]/u", '', $string);
【讨论】:
preg_replace('/[\s\W]+/', '', $string)
似乎有效,实际上该示例在 preg_replace 上的 PHP 文档中
【讨论】:
$alpha = '0-9a-z'; // what to KEEP
$regex = sprintf('~[^%s]++~i', preg_quote($alpha, '~')); // case insensitive
$string = preg_replace($regex, '', $string);
【讨论】: