解析posix与perl标准的正则表达式区别

   正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式、正规表示式或常规表达式或正规化表示法或正规表示法,是指一个用 来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本 内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的在正则表达式引擎。正则表达式这个概念最初是由 Unix中的工具软件(例如sed和grep)普及开的。(摘自维基百科)

    PHP同时使用两套正则表达式规则,一套是由电气和电子工程师 协会(IEEE)制定的POSIX Extended 1003.2兼容正则(事实上PHP对此标准的支持并不完善),另一套来自PCRE(Perl Compatible Regular Expression)库提供PERL兼容正则,这是个开放源代码的软件,作者为 Philip Hazel。

推荐使用PCRE(Perl Compatible Regular Expression)库提供PERL兼容正则,比POSIX更高效。

快速学习:PHP正则表达式的快速学习方法   POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比    正则表达式速查表

使用POSIX兼容规则的函数有: 
ereg_replace() 
ereg() 
eregi() 
eregi_replace() 
split() 
spliti() 
sql_regcase() 
mb_ereg_match() 
mb_ereg_replace() 
mb_ereg_search_getpos() 
mb_ereg_search_getregs() 
mb_ereg_search_init() 
mb_ereg_search_pos() 
mb_ereg_search_regs() 
mb_ereg_search_setpos() 
mb_ereg_search() 
mb_ereg() 
mb_eregi_replace() 
mb_eregi() 
mb_regex_encoding() 
mb_regex_set_options() 
mb_split()

使用PERL兼容规则的函数有: 
preg_grep() 
preg_replace_callback() 
preg_match_all() 
preg_match() 
preg_quote() 
preg_split() 
preg_replace()

原文地址:https://www.cnblogs.com/liliuguang/p/10682865.html