preg_replace正则表达式问题

时间:2011-02-12 09:20:11

标签: php regex preg-replace expression

我正在尝试清理一个字符串。

我只需要允许

  1. 大写/小写字母
  2. 空格,制表符,回车
  3. 这些字符:_-+*()[]!#?.,;:'"<>
  4. 其他一切都需要再见。我该怎么做?我有这个,适用于大写/小写字母,数字和空格。但我不知道如何考虑标签,回车或如何做特殊字符?

    $str = preg_replace('/[^a-z0-9 ]/i', '', $str);
    

3 个答案:

答案 0 :(得分:3)

尝试

$str = preg_replace('/[^\w\r\n\t+*()[\]!#?.\,;:\'"<> -]/', '', $str);

答案 1 :(得分:2)

\ s - 空格字符(包括制表符和换行符)
\ r-回车
使用“\”字符表示特殊的symobls。

答案 2 :(得分:1)

$str = 'sample|';
$result = !(bool)strlen(preg_replace('/^[a-z0-9A-Z\r\s:_-+*()[]!#?.,;:\>\<]*/', '', $str))