用管道代替斜线的regexp?

时间:2012-11-05 07:06:47

标签: php regex preg-replace

大多数PHP文档显示包含在斜杠中的正则表达式:

preg_replace( '/\s+/', ' ', $str );

我正在查看WP formatting.php的来源,并看到一些正则表达式用管道而不是斜线包裹。包裹在管道中的行为与包裹斜杠的行为有何不同?有什么功能差异吗?该文件中的一些示例是:

preg_replace( '|\s+|', ' ', $str ); # consolidate whitespace

preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $str ); # remove octets

1 个答案:

答案 0 :(得分:3)

非斜杠分隔符(如竖线字符)可以更容易匹配斜杠,因为您不必转义它们。

preg_replace( '|/+|', '/', $str );  # collapse consecutive slashes in path