0

大多数 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
4

1 回答 1

3

非斜线分隔符,如管道字符,更容易匹配斜线,因为您不必转义它们。

preg_replace( '|/+|', '/', $str );  # collapse consecutive slashes in path
于 2012-11-05T07:12:49.023 回答