来自字符串php的Escape()%[]

时间:2013-11-27 18:01:42

标签: php regex string

使用此代码,我可以从php中删除字符串中的所有特殊字符:

   function noSpeCha($string) {
     return preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '', $string);
   }

但我也需要删除这些字符:

( ) % [ ]

我不知道如何继续。

2 个答案:

答案 0 :(得分:3)

[^n] is a regular expression pattern匹配方括号之间的字符(在这种情况下,它匹配的字符不是n)。

如果您想更改现有正则表达式以匹配%()[],则需要将其删除来自[^...]块(及其escape characters)。

preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '', $string);
                            ^^^^^  ^^^^^
离开你
preg_replace('/[^a-zA-Z0-9_ \.&-]/s', '', $string);
整理了一些东西给了我们......
preg_replace('/[^a-z0-9_ .&-]/si', '', $string);

答案 1 :(得分:0)

从列表中删除例外,这只会允许字母,数字,下划线,短划线和空格:

function noSpeCha($string) {
  return preg_replace('/[^a-zA-Z0-9_- ]/s', '', $string);
}