0

我试图弄清楚这是做什么的,以及如何改变它。

preg_replace('/[^\w\s]/','',$var);

我认为这将所有符号都替换为空(基本上删除它们)。如果我想允许一些特定的符号怎么办,我在这里改变什么?

例如,我想替换所有内容,除了:

  • /
  • 数字
  • 字母
  • 空间

谢谢。

4

2 回答 2

2

^表示除此之外的所有内容,因此这将替换除单词字符 ( \w) 和空格 ( \s) 之外的所有内容。

要替换除您提到的字符之外的所有内容,请使用以下命令:

preg_replace('/[^\w\s\/]/', '', $var);

\/是 的转义版本/

于 2012-06-04T19:47:50.757 回答
1

这基本上是:“找到不是单词字符或空格字符的所有内容并将其从字符串中删除”

^ 是一个否定,所以你可以在 [] 之后放任何你想要的东西,它会跳过那些。它已经在做你想做的一切,除了 /

注意: \w 是 [0-9A-Za-z_] 的简写(或接近它。)

来自perl.org

\w 是一个单词字符(字母数字或),代表 [0-9a-zA-Z ]

于 2012-06-04T19:48:49.353 回答