对于UTF8,是PHP preg_func/u还是mb_ereg_func?(具有多字节PCRE或多字节POSIX的正则表达式?)
所有这些问题都是相似的,(我猜)有一个相似的答案:对于UTF8,是PHP preg_func/u还是mb_ereg_func?(具有多字节PCRE或多字节POSIX的正则表达式?),php,regex,utf-8,Php,Regex,Utf 8,所有这些问题都是相似的,(我猜)有一个相似的答案: POSIX已经被弃用(从PHP5.3.0开始)。那么,如果PHP社区更喜欢PCRE正则表达式,为什么我们需要使用POSIX呢 也是POSIX的,仅用于保留mb前缀系列的多字节函数 我已经使用过UTF8字符串,以及UTF8正则表达式(!)的/u选项。为什么不只使用PCRE 关于何时使用preg以及何时使用mb_ereg,有明确的(官方)PHP文档 相关问题(不提供直接答案): @mercator comment表示,mb_ereg函数“是PO
mb
前缀系列的多字节函数/u
选项。为什么不只使用PCREpreg
以及何时使用mb_ereg
,有明确的(官方)PHP文档相关问题(不提供直接答案):
- @mercator comment表示,
函数“是POSIX ereg函数的多字节版本,但与PCRE preg函数并不完全相同”。那么,为什么要使用它呢?只是因为有些人喜欢POSIX,不喜欢PCREmb_ereg
- 是关于2006年的PHP错误
ereg
表明mb_ereg
使用ERE)。我只是不知道mb_ereg
函数族的语法,不过……首先,mb_ereg
是mb扩展的一部分,因此不一定被认为是核心PHP的一部分,因此不一定由相同的人员和弃用过程管理。尽管如此,mb_ereg
似乎支持通过mb_internal_编码进行任意编码preg.*
仅支持UTF-8。不过,这只是我的猜测……多亏了这两个!照亮问题和答案。。。我编辑,列举了4个“等价问题”(4个等式)@deceze针对EQ2提出了一个非常好的猜测。NHAHDH关于ERE的评论是针对EQ1的,我想我称之为“ERE”的就是我称之为“POSIX”的东西。@deceze这感觉很奇怪——你现在可能知道这一点,但当时可能没有:请添加答案而不是评论。请参阅“我何时不应发表评论”一节?在…上