如何改造这个正则表达式

时间:2012-06-04 19:43:13

标签: php regex preg-replace

我正在试图找出它的作用,以及如何改变它。

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

我认为这会替换所有符号(基本上删除它们)。如果我想允许某些特定符号怎么办?我在这里做了什么改变?

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

  • /
  • 字母
  • 空间

感谢。

2 个答案:

答案 0 :(得分:2)

^表示除此之外的所有内容,因此除了单词字符(\w)和空格(\s)之外的其他所有内容。

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

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

\//的转义版本。

答案 1 :(得分:1)

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

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

之外,它已经做了你想要的一切

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

来自perl.org

  

\ w是单词字符(字母数字或)并表示       [0-9A-ZA-Z