PCRE模式
PHP Manual

与POSIX正则表达式的不同

php 5.3.0, POSIX 正则表达式扩展被废弃.在POSIX正则和 PCRE正则之间有一些不同, 本页列出了在转向PCRE时最显著的需要知道的不同点.

  1. PCRE函数需要模式以分隔符闭合.
  2. 不像POSIX, PCRE扩展没有专门用于大小写不敏感匹配的函数. 取而代之的是, 支持使用/i 模式修饰符完成同样的工作. 其他模式修饰符同样可用于改变匹配策略.
  3. POSIX函数从最左面开始寻找最长的匹配, 但是PCRE在第一个合法匹配后停止. 如果字符串 不匹配这没有什么区别, 但是如果匹配, 两者在结果和速度上都会有差别. 为了说明这个不同, 考虑下面的例子(来自Jeffrey Friedl的《精通正则表达式》一书). 使用模式 one(self)?(selfsufficient)?在字符串oneselfsufficient 上匹配, PCRE会匹配到oneself, 但是使用POSIX, 结果将是整个字符串 oneselfsufficient. 两个子串都匹配原始字符串, 但是POSIX将 最长的最为结果.

函数对照表
POSIX PCRE
ereg_replace() preg_replace()
ereg() preg_match()
eregi_replace() preg_replace()
eregi() preg_match()
split() preg_split()
spliti() preg_split()
sql_regcase() 无对等函数


PCRE模式
PHP Manual