我试图弄清楚这是做什么的,以及如何改变它。
preg_replace('/[^\w\s]/','',$var);
我认为这将所有符号都替换为空(基本上删除它们)。如果我想允许一些特定的符号怎么办,我在这里改变什么?
例如,我想替换所有内容,除了:
- /
- 数字
- 字母
- 空间
谢谢。
我试图弄清楚这是做什么的,以及如何改变它。
preg_replace('/[^\w\s]/','',$var);
我认为这将所有符号都替换为空(基本上删除它们)。如果我想允许一些特定的符号怎么办,我在这里改变什么?
例如,我想替换所有内容,除了:
谢谢。
^
表示除此之外的所有内容,因此这将替换除单词字符 ( \w
) 和空格 ( \s
) 之外的所有内容。
要替换除您提到的字符之外的所有内容,请使用以下命令:
preg_replace('/[^\w\s\/]/', '', $var);
\/
是 的转义版本/
。
这基本上是:“找到不是单词字符或空格字符的所有内容并将其从字符串中删除”
^ 是一个否定,所以你可以在 [] 之后放任何你想要的东西,它会跳过那些。它已经在做你想做的一切,除了 /
注意: \w 是 [0-9A-Za-z_] 的简写(或接近它。)
来自perl.org
\w 是一个单词字符(字母数字或),代表 [0-9a-zA-Z ]