首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP最近放弃了[[:POSIX:]]正则表达式的味道

PHP最近放弃了POSIX正则表达式的味道,这意味着PHP不再支持POSIX风格的正则表达式语法。POSIX正则表达式是一种基于标准的正则表达式语法,用于匹配文本模式。

这个决定可能是因为POSIX正则表达式在某些情况下性能较低,并且不够灵活。相比之下,PHP提供了PCRE(Perl Compatible Regular Expressions)库,它是一种更强大和灵活的正则表达式引擎。

PCRE支持Perl风格的正则表达式语法,具有更多的功能和选项。它在PHP中被广泛使用,并且在性能和功能方面都表现出色。

对于开发者来说,放弃POSIX正则表达式意味着他们需要使用PCRE语法来编写正则表达式模式。PCRE语法与POSIX语法有一些差异,但它更强大且更易于使用。

在PHP中,可以使用preg系列函数来执行PCRE正则表达式匹配。例如,preg_match()函数用于执行正则表达式匹配,preg_replace()函数用于执行正则表达式替换。

PHP的这个变化不会对现有的PHP代码产生太大影响,因为大多数开发者已经习惯了使用PCRE语法。然而,对于那些仍然依赖于POSIX正则表达式的代码,他们需要进行相应的修改。

总结起来,PHP最近放弃了POSIX正则表达式的味道,转而支持更强大和灵活的PCRE正则表达式。这个变化对于开发者来说并不会带来太大的困扰,而且可以提供更好的性能和功能。如果你想了解更多关于PHP正则表达式的信息,可以参考腾讯云的PHP开发文档:PHP开发文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

正则引擎几种分类

正则引擎有两个大分类,DFA和NFA,像Perl、Java、.Net、PHP、Python、Ruby……等大多是工具都是用了NFA引擎。...少数广泛被使用工具如mawk使用了POSIX NFA引擎(NFA一种变种)。以高效著称工具采用了更为高效DFA引擎。...诸如GNU awk,GNU egrep和Tcl之类一些工具结合NFA / DFA两种引擎,将两者优点结合在一起。 基于不同类型引擎实现正则表达式,主要有以下几点差异。...如果引擎到达正则表达式末尾并且所有内容都已匹配,则引擎就会认为匹配成功,并最终放弃所有剩下替代方法,甚至不再继续探索。...POSIX NFA 引擎 POSIX NFA引擎类似于传统NFA引擎,但是当找到成功匹配项时,它将会记录匹配结果,并且尝试其他可用替代方法以查找是否可以找到更长最左边匹配。

6410

PHP中正则使用

正则表达式,作为一种快速、便捷处理字符串工具,在各种编程语言中都有着广泛用途,通过在PHP一些使用,下面记录一下关于PHP中正则使用一些技巧。...使用“preg_”为前缀命名函数; 一套由POSIX(Portable Operating System Interface of Unix )扩展提供。...使用以“ereg_”为前缀命名函数;(POSIX正则函数库,自PHP 5.3以后,就不在推荐使用,从PHP6以后,就将被移除) 由于POSIX正则即将推出历史舞台,并且PCRE和perl形式差不多...匹配到最近字符串 e     -将替换字符串作为表达使用 格式:/apple/i匹配“apple”或“Apple”等,忽略大小写。    ...而对于preg和ereg两个系列之间执行效率,曾看到文章说preg要更快一点,具体由于使用ereg时候并不多,而且也要推出历史舞台,再加个个人更偏好于PCRE方式,所以笔者就不做比较,熟悉朋友可以发表下意见

3.7K30
  • PHP中有关正则表达式函数集锦

    当时初学PHP根本不知道PHP有专门抓包工具,就像Simple_html_dom.php(在我其他博文中有提到),之前根本就不知道有这东西,所以就自己废着劲去学习正则表达式,然后再学习PHP正则表达式函数是如何使用...有种调侃正则表达式说法,把正则表达式叫做火星文。当第一次用到Simple_html_dom.php这个工具包时有点相见恨晚赶脚。不过还好,毕竟自己学了正则表达式了嘛,多学点东西还是没错。...下面是当时学习PHP正则表达式所总结内容,和大家分享一下,欢迎大家批评指正 PHP正则表达式函数   在PHP中有两套正则表达式函数库。...PCRE库使用和Perl相同语法规则实现正则表达式模式匹配,其使用以“preg_”为前缀命名函数。...POSIX扩展正则表达式POSIX 1003.2定义,一般使用以“ereg_”为前缀命名函数。 两套函数库功能相似,执行效率稍有不同。一般而言,实现相同功能,使用PCRE库效率略占优势。

    1.1K50

    关于正则表达式第一篇(r3笔记第29天)

    正则表达式在编程语言中,数据库中,linux中都有着广泛应用,一说起正则表达式就有些高深晦涩味道正则表达式精炼而重要,在Linux中有着举足轻重作用,也是学好sed,awk一个基本门槛。...正则表达式是基于正则表达式引擎来实现,引擎主要有以下两类。可能大家对这个比较陌生。...POSIX基本正则表达式引擎 BRE POSIX扩展正则表达式引擎 ERE 大多数Linux实现中都是BRE,也是默认实现,还有扩展实现就是ERE....像grep,awk就支持基本和扩展引擎,sed只支持基本引擎,也是基于性能考虑。 学习awk相当于学习一门新编程语言,所以awk功能很完善,扩展引擎也支持。...对于字符/ $ echo "3 / 2"|sed -n '///p' sed: -e expression #1, char 3: unknown command: `/‘ 出这个错误是因为左斜线不是正则表达式特殊字符一部分

    69040

    梳理正则表达式发展史

    这篇论文描述一种叫做 "正则集合(Regular Sets)" 数学符号,引入了正则表达式概念。 60 年代,Unix 之父 Ken Thompson 发表正则表达式搜索算法》 论文。...80 年代,POSIX (Portable Operating System Interface) 标准公诸于世,它制定不同操作系统都需要遵守一套规则,其中就包括正则表达式规则。...同样在 80 年代,Larry Wall 发布 Perl 编程语言,其中引入正则表达式功能是颗耀眼明珠。 90 年代,随着 Perl 语言发展,它正则表达式功能越来越强悍。...现代编程语言如 Python , Ruby , PHP , C / C++ , Java 等正则表达式,大部分都属于 PCRE 派系。...随着 Perl 每次迭代,新增特性使正则表达式本身逐渐成为一门强大编程语言,并为其提供进一步发展空间,也因为派系整合, PCRE 库横空出世,它是一套兼容 Perl 正则表达式库,全面仿制 Perl

    2.1K40

    刨根究底正则表达式之一——正则表达式简介

    POSIX是一系列规范,定义Unix操作系统应当支持功能,其中也包括正则表达式规范。 因此,Unix系统或类Unix系统上大部分工具,如grep、sed、awk等,均遵循该标准。...遵循POSIX正则表达式规范这些语言和工具中正则引擎,往往习惯将它们称之为POSIX流派正则引擎。 4....1) POSIX(Portable Operating System Interface for uniX)流派 POSIX是一系列规范,定义UNIX操作系统应当支持功能,其中也包括正则表达式规范...POSIX规范定义正则表达式BRE(Basic Regular Expression基本正则表达式)和ERE(Extended Regular Express扩展正则表达式)两种标准。...(注:PHP支持两种不同正则引擎:ereg与preg,ereg全称为Extended Regular Expression,属于POSIX ERE;ereg由于功能方面的不足,已经逐渐被preg替代

    1.2K40

    posix,perl正则表达式区别

    在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式文本内容 。许多程序设计语言都支持利用正则表达式进行字符串操作。...例如,在Perl中就内建了一个功能强大正则表达式引擎。正则表达式这个概念最初是由Unix中工具软件(例如sed和grep)普及开。...2、PHP同时使用两套正则表达式规则,一套是由电气和电子工程师协会(IEEE)制定POSIX Extended 1003.2兼容正则(事实上PHP对此标准支持并不完善),另一套来自PCRE(Perl...e: 如果设定此修正符,preg_replace()在替换字符串中对逆向引用作正常替换,将其作为 PHP代码求值,并用其结果来替换所搜索字符串。...php $str = "http://www.163.com/"; // POSIX兼容正则: echo ereg_replace("(.+)","\\1</a

    1.4K20

    QueryList优雅渐进式PHP采集框架,让采集更简单一点

    最近接触一个PHP采集框架,体验一把感觉挺不错,就分享一下,一般说道采集数据,大多数程序员估计想到是python等程序,采集比较强大,其实之前我也有去尝试和学习python采集,不过没啥基础,...没有学会就放弃,因为自己有一点业务水准php基础,所有就找到了这个采集框架; ?...QueryList是一套简洁、优雅PHP采集工具,基于phpQuery。...QueryList不依赖任何框架和架构,它可以单独使用也可以引入到任意PHP开发框架中去使用; QueryList是一套用于内容采集PHP工具,它使用更加现代化开发思想,语法简洁、优雅,可扩展性强...相比传统使用晦涩正则表达式来做采集,QueryList使用了更加强大而优雅CSS选择器来做采集,大大降低了PHP做采集门槛,同时也让采集代码易读易维护,让你从此告别晦涩难懂且不易维护正则表达式

    1.1K10

    PHP小课堂】PHP中PRGE正则函数学习

    PHP中PRGE正则函数学习 正则表达式作用想必不用我多说了,大家在日常开发中或多或少都会接触到。特别是对于一些登录(邮箱、手机号)以及网页爬虫来说,正则表达式就是神器一般存在。...在 PHP 中,有两种处理正则表达式函数,今天我们就来学习其中一种。...PCRE 与 POSIX 前面说到,有两种处理正则函数库,一个是 POSIX 为主 ereg_xxx 这种函数,不过它们已经被淘汰,并不是很推荐使用。...PCRE 函数库对 perl 支持非常友好,同时,它也是支持 POSIX 扩展语法正则表达式。具体正则语法规则和模式修饰符相关信息可以在文末链接中查阅。...不过我电脑上还没有安装 PHP8 所以这块内容就不展示。 总结 PHP 中正则操作函数就这些,但正则真正精髓其实是在于正则表达式怎么写这一块。

    14710

    phpmailer RCE漏洞分析

    最近爆出来个CVE-2016-1003,国内人分析两天发现ying 是国外十几年前发现漏洞,分析两天发现影响覆盖越来越严重,现在最新patch也被绕过了,又爆cve… 朋友博客 CVE-...< 5.2.20 (0day) php safe_mode = false 那么问题来了,怎么分析复杂正则表达式 https://www.leavesongs.com/PENETRATION/how-to-analyze-long-regex.html...还有好用正则表达式分析引擎 https://regex101.com 新cve提交是这个payload \"attacker\\' -oQ/tmp/ -X%s/phpcode.php some...\"@email.com 我朋友Hcamael研究两种 a....后来我发现,作者又更新patch,但看聊天记录来看,作者被迫放弃一部分正常功能,所以怎么修复还需要等等看 https://github.com/PHPMailer/PHPMailer/pull/

    1.2K30

    正则表达式详解

    引子   目前,正则表达式已经在很多软件中得到广泛应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,以及很多应用软件中,都可以看到正则表达式影子。...PHP正则表达式模式后面通常带有 /i, /is, /s, /isU等参数,那么这都是些什么东西呢?...e   如果设定此修正符,preg_replace() 在替换字符串中对逆向引用作正常替换,将其作为 PHP 代码求值,并用其结果来替换所搜索字符串。   ...8.posix和perl标准正则表达式区别 PHP同时使用两套正则表达式规则,一套是由电气和电子工程师协会(IEEE)制定POSIX Extended 1003.2兼容正则(事实上PHP对此标准支持并不完善...e: 如果设定此修正符,preg_replace() 在替换字符串中对逆向引用作正常替换,将其作为 PHP 代码求值,并用其结果来替换所搜索字符串。

    1.4K10

    深入正则表达式(3):正则表达式工作引擎流程分析与原理释义

    所以后来大家弄一个标准,符合这个标准正则引擎就叫做POSIX NFA引擎,其余就只能叫做传统型NFA引擎咯。...三种引擎使用情况 使用传统型NFA引擎程序主要有(主流): Java、Emacs(JavaScript/actionScript)、Perl、PHP、Python、Ruby、.NET语言 VI,GNU...《精通正则表达式》书中说POSIX NFA引擎不支持非贪婪模式,很明显JavaScript不是POSIX NFA引擎。...优化正则表达式 现在我们知道控制回溯是控制正则表达式性能关键。 控制回溯又可以拆分成两部分:第一是控制备选状态数量,第二是控制备选状态顺序。...只有字符串中每个字符(以及最后一个字符后面的位置)都经历这样过程之后,还没有成功匹配,那么正则表达式就宣布彻底失败。

    1.8K00

    代码之美,正则之道

    上述[[:xxxx:]] 形式正则表达式, 是php中内置通用字符簇, js中并不支持. linux/osx下常用命令与正则表达式关系 我曾经尝试在 grep 和 sed 命令中书写正则表达式,...唯一不同就是: 固化分组匹配结束时, 它匹配到文本已经固化为一个单元, 只能作为整体而保留或放弃, 括号内子表达式中未尝试过备用状态都会被放弃, 所以回溯永远也不能选择其中状态(因此不能参与回溯...下面提供一个php固化分组形式正则表达式, 以供尝试. $str = "123.456"; echo preg_replace("/(\.\d\d(?>[1-9]?))...\d+/","\\1",$str); //固化分组 不仅如此, php还提供占有量词优先语法. 如下: $str = "123.456"; echo preg_replace("/(\....POSIX NFA主要指符合POSIX标准NFA引擎, 像 javaScript, java, php, python, c#等语言均实现NFA引擎.

    1.8K20

    代码之美,正则之道

    上述[[:xxxx:]] 形式正则表达式, 是php中内置通用字符簇, js中并不支持. linux/osx下常用命令与正则表达式关系 我曾经尝试在 grep 和 sed 命令中书写正则表达式,...唯一不同就是: 固化分组匹配结束时, 它匹配到文本已经固化为一个单元, 只能作为整体而保留或放弃, 括号内子表达式中未尝试过备用状态都会被放弃, 所以回溯永远也不能选择其中状态(因此不能参与回溯...下面提供一个php固化分组形式正则表达式, 以供尝试. $str = "123.456";echo preg_replace("/(\.\d\d(?>[1-9]?))...\d+/","\\1",$str); //固化分组 不仅如此, php还提供占有量词优先语法. 如下: $str = "123.456";echo preg_replace("/(\....POSIX NFA主要指符合POSIX标准NFA引擎, 像 javaScript, java, php, python, c#等语言均实现NFA引擎.

    1.3K30

    PHP核心技术与最佳实践 读书笔记 第三章 正则表达式基础与应用

    第三章 正则表达式基础与应用 3.1 认识正则表达式 正则表达式就是用某种模式去匹配一类字符串公式。...Perl和.NET对正则表达式支持最为强大,而Javascript对正则表达式支持则比较“朴素”。...3.1.1 PHP正则函数 NFA和DFA PHP有两套正则函数 :PCRE库 preg_ 和POSIX扩展ereg_(不推荐) 3.1.2 正则表达式组成 分隔符,表达式和修饰符...Expression Tester 3.2 正则表达式元字符 \b 是正则表达式规定一个特殊代码,代表单词开头或者结尾,也就是单词分界处。...3.3.2 转义 Javascript \r\n代表换行 alert("可以换行\r\n第二行"); PHP转义符\ \Q和\E也可以在模式中忽略正则表达式元字符 \Q和\

    63310

    php面试题(1)

    5.0.3开始,在计算 DECIMAL 值和舍入精确值时候采用精确数学。 ◆在以前,等待超时锁会导致 InnoDB回滚当前全部事务,从5.0.13开始,就只回滚最近SQL语句。...b 3字节 posix和perl标准正则表达式区别; 正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式、正规表示式或常规表达式或正规化表示法或正规表示法...在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式文本内容 。许多程序设计语言都支持利用正则表达式进行字符串操作。...例如,在Perl中就内建了一个功能强大正则表达式引擎。正则表达式这个概念最初是由 Unix中工具软件(例如sed和grep)普及开。...(摘自维基百科) PHP同时使用两套正则表达式规则,一套是由电气和电子工程师协会(IEEE)制定POSIX Extended 1003.2兼容正则(事实上PHP对此标准支持并不完善),另一套来自

    3.6K20

    正则表达式

    比如 匹配正确IP地址 匹配正确e-mail地址 正则表达式 1、正则表达式介绍 正则表达式(Regular Expression、regex或regexp,缩写为RE),也译为正规表示法、常规表示法...许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大正则表达式引擎。 正则表达式这个概念最初是由Unix中工具软件(例如sed和grep)普及开。...支持正则表达式程序如:locate |find| vim| grep| sed |awk 正则表达式是一个三方产品,被常用计算机语言广泛使用,比如:shell、PHP、python、java、js等!...与星号相似,但略有变化,表示该字符出现一次或不出现 + 与星号相似,表示其前面字符出现一次或多次,但必须出现一次 {n,m} 某个字符之后出现,表示该字符最少n次,最多m次 {m} 正好出现m次 测试案例...3、正则表达式POSIX字符 posix字符一次只匹配一个范围中一个字节 特殊字符 说明 [:alnum:] 匹配任意字母字符0-9 a-z A-Z [:alpha:] 匹配任意字母,大写或小写 [

    53130

    值得读linux正则表达式总结---1

    要解决这个疑惑,我们需要了解一些背景: POSIX 是一个标准,其中定义一些正则表达式规范,而Linux基本上实现POSIX规范,但并没有参加正式POSIX认证(这个说法查自百度百科词条...POSIX)。...而POSIX 定义两种正则表达式语法,一种是BRE(Basic Regex Expression),另一种是ERE(Extended Regex Expression)....关于上述扩展以及基本正则表达式,参考https://man.linuxde.net/docs/shell_regex.html 知道上述基本和扩展正则表达式,当使用linux命令时候,要查看帮助都支持什么正则表达式...个人理解是: shell 对这个 $'\t' 进行了interpreted, 然后把结果传递给grep 做进一步处理,但是如果用在grep中正则表达式比较复杂,而tab仅仅是其中一个字符,那么用起来比较麻烦

    81340
    领券