PHP正则表达式分隔符,/ vs. |与{},有什么区别?

时间:2010-05-23 17:45:00

标签: php regex

在PCRE的PHP手册http://us.php.net/manual/en/pcre.examples.php中,它给出了4个有效模式的例子:

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

似乎/|或一对花括号可以用作分隔符,它们之间有什么区别吗?

2 个答案:

答案 0 :(得分:5)

没有区别,除了关闭分隔符不能在没有转义的情况下出现。

当标准分隔符被大量使用时,这很有用,例如而不是

preg_match("/^http:\\/\\/.+/", $str);

你可以写

preg_match("[^http://.+]", $str);

以避免需要转义/

答案 1 :(得分:5)

实际上你可以使用任何非字母数字分隔符(不包括空格和反斜杠)

"%^[a-z]%"

一样有效
"*^[a-z]*"

以及

"!^[a-z]!"