我发现了这个:
$text = preg_replace('/\W+/', '-', $text);
任何人都可以告诉我到底是做什么的?没有关于'/ \ W + /'的含义的信息..
此致
哈维
答案 0 :(得分:2)
\W
表示非字母数字字符,因此除了a-z,A-Z,0-9或下划线之外的任何其他字符。
这是正则表达式的标准,没有特定于Php。
这是一个测试正则表达式的好工具:
http://www.gskinner.com/RegExr/
如果您将\W+
放在顶部的框中,您会看到它匹配的内容。
PS:这是另一种更简单,更清洁的工具,尽管可能不是功能丰富:
它包含一个方便的快速参考,用于底部的正则表达式。
答案 1 :(得分:1)
看起来它取代了任何不是“单词字符”(字母,数字,下划线)的东西,并使它们成为连字符。
答案 2 :(得分:1)
preg
系列函数使用Perl兼容正则表达式或PCRE。有nice cheat sheet for them here(PDF)。
\W
表示“任何非单词字符”,+
会将其限制为前一个字符中的一个或多个的匹配。 “单词字符”被定义为字母,数字和下划线,因此\W
将匹配不属于这些字符的字符。
您的代码行将替换任何不带字符连字符的字符集。
答案 3 :(得分:0)
它记录在http://es2.php.net/manual/en/regexp.reference.backslash.php(从PHP手册的PCRE部分链接,其中解释了preg_replace)。