background image

PHP

进阶 posix 与 perl 标准的正则表达式区别

本文主要为大家分析介绍了 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。

使用 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()