正则表达式模式修正符,php正则表达式的模式修正符和逆向引用使用介绍

注: 本校对符在 PHP三 中不可用。

m(PCRE_MULTILINE)
私下认可情状下,PCRE
将对象字符串作为纯粹的一“行”字符所组成的(以至里头带有有换行符也是如此)。“行发轫”元字符(^)仅仅相配字符串的开场,“行终止”元字符($)仅仅相称字符串的收尾,只怕最后二个字符是换行符时其前方(除非设定了
D 考订符)。这和 Perl 是同一的。
当设定了此校订符,“行初步”和“行终止”除了相称整个字符串开头和竣事外,还分别相称其中的换行符的之后和前边。那和
Perl 的 /m 改良符是等效的。假诺指标字符串中尚无“n”字符大概形式中平素不 ^
或 $,则设定此改进符没有别的作用。

x (PCRE_EXTENDED)
借使设定了此校对符,方式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的
# 以及下1个换行符之间的保有字符,包罗多头,也都被忽视。那和 Perl 的 /x
核对符是等效的,使得可以在眼花缭乱的形式中投入注释。然则注意,那仅适用于数据字符。空白字符也许永世不会出现于方式中的特殊字符种类,例如引进条件子形式的类别(?( 中间。

S
当二个方式将被接纳几何次时,为加速相配起见值得先对其进展辨析。假若设定了此纠正符则会开展额外的深入分析。方今,深入分析三个格局仅对未有纯净固定起先字符的
non-anchored 格局有用。

当3个形式将被利用几何次时,为加速相配起见值得先对其进展辨析。借使设定了此改良符则会开始展览额外的深入分析。近些日子,深入分析一个方式仅对尚未纯净固定初阶字符的
non-anchored 形式有用。
D(PCRE_DOLLAR_ENDONLY)
设若设定了此校对符,形式中的澳元元字符仅非凡指标字符串的终极。未有此选项时,如若最后贰个字符是换行符的话,比索符号也会协作此字符在此以前(但不会协作任何其它换行符此前)。假若设定了
m 改正符则忽略此选项。Perl 中从不与其等价的核查符。
U(PCRE_UNGREEDY)
本校勘符反转了配合数量的值使其不是私下认可的双重,而改为在末端跟上“?”才变得重新。那和
Perl 分裂盟。也得以由此在格局里面设定 (?U)
查对符或许在数额符之后跟贰个问号(如 .*?)来启用此选项。
X(PCRE_EXTRA)
此勘误符启用了三个 PCRE 中与 Perl
不相称的额外功效。情势中的任何反斜线前边跟上叁个未曾例外含义的假著名发行人致3个荒唐,从而保留此构成以备未来增加。暗中同意意况下,和
Perl
同样,二个反斜线前面跟2个从未有过异样意义的假名被当成该字母本人。当前并未有别的天性受此查对符调整。
u(PCRE_UTF8)
此校勘符启用了八个 PCRE 中与 Perl 不一样盟的额外作用。方式字符串被当成
UTF-八。本改进符在 Unix 下自 PHP 四.1.0 起可用,在 win32 下自 PHP 肆.2.叁起可用。自 PHP 四.叁.5 起开首反省方式的 UTF-捌 合法性。

A (PCRE_ANCHORED)
1经设定了此修正符,格局被挟持为“anchored”,即强制仅从指标字符串的起来初阶相配。此功用也足以经过适当的方式自身来兑现(在
Perl 中达成的唯一办法)。

A(PCRE_ANCHORED)
假若设定了此改正符,方式被挟持为“anchored”,即强制仅从指标字符串的开始开头匹配。此效能也足以透过适当的方式本身来促成(在
Perl 中完结的独一无二方法)。

说明
下边列出了这段日子在 PCRE 中只怕利用的核对符。括号中是这个校正符的在这之中 PCRE
名。考订符中的空格和换行被忽略,其它字符会导致错误。

/()/是用来子方式的定界符,相配的子形式自动分配编号一~九,这么说的因为\\9玖会让解释器认为混乱。可是能够用/(?)/(另一种写法/(?’word’)/)来为子方式命名,用\\k(一定记得有个k)来开始展览逆向引用,那样1来就不会有编号数目标范围了(正确的说最大限度是9玖,再大也好似隐约无需了)。

x(PCRE_EXTENDED)
借使设定了此勘误符,情势中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的
# 以及下2个换行符之间的具有字符,包罗多头,也都被忽略。那和 Perl 的 /x
考订符是等效的,使得能够在纷纭的格局中到场注释。然则注意,那仅适用于数据字符。空白字符只怕永世不会并发于形式中的特殊字符种类,譬喻引进条件子格局的系列(?( 中间。

您大概感兴趣的稿子:

  • [正则表明式]贪欲格局与非贪婪方式
  • MySQL 字符串情势相称扩张正则表明式情势匹配
  • 正则表达式方式查对符(/ies)
  • Javascript中正则表明式的大局相称方式深入分析
  • PHP正则表明式的逆向引用与子格局深入分析
  • php正则表明式的格局勘误符和逆向引用使用介绍
  • 正则表达式教程之方式改良符使用介绍
  • 正则表明式之
    贪婪与非贪婪格局详解(概述)
  • JavaScript
    正则表明式中global情势的特征

i :情势中的字符将同不时间包容大小写字母.
m :字符串视为多行.
s :将字符串视为单行,换行符作为一般字符.
x :将格局中的空白忽略.
A :强制仅从目的字符串的发端初阶相配.
D :形式中的美金元字符仅特别指标字符串的结尾.
U :匹配如今的字符串.

s(PCRE_DOTALL)
比如设定了此更正符,格局中的圆点元字符(.)相配全部的字符,包罗换行符。未有此设定以来,则不包罗换行符。那和
Perl 的 /s 改良符是等效的。排除字符类比方 [^a]
总是相称换行符的,无论是不是设定了此更正符。

i (PCRE_CASELESS)
设若设定此校对符,方式中的字符将同一时候相配大小写字母。
s(PCRE_DOTALL)
假定设定了此改良符,方式中的圆点元字符(.)匹配全数的字符,包蕴换行符。没有此设定来说,则不蕴含换行符。那和
Perl 的 /s 改正符是等效的。排除字符类比如 [^a]
总是相称换行符的,无论是还是不是设定了此校正符。

关于逆向引用

U(PCRE_UNGREEDY)
本改进符反转了卓殊数量的值使其不是暗中同意的重复,而改为在背后跟上“?”才变得重复。这和
Perl 分裂盟。也得以透过在形式里面设定 (?U)
改进符也许在数码符之后跟叁个问号(如 .*?)来启用此选项。

e
万1设定了此修正符,preg_replace()
在轮换字符串中对逆向引用作平常的替换,将其看做 PHP
代码求值,并用其结果来替换所寻找的字符串。
只有 preg_replace() 使用此修正符,别的 PCRE 函数将忽略之。
注: 本查对符在 PHP三 中不可用。
x(PCRE_EXTENDED)
借使设定了此改进符,情势中的空白字符除了被转义的或在字符类中的以外完全被忽视,在未转义的字符类之外的
# 以及下贰个换行符之间的全数字符,包蕴四头,也都被忽略。那和 Perl 的 /x
勘误符是等效的,使得能够在复杂的格局中插足注释。但是注意,那仅适用于数据字符。空白字符或许长久不汇合世于形式中的特殊字符系列,举个例子引进条件子情势的类别(?( 中间。

只有 preg_replace() 使用此校对符,其余 PCRE 函数将忽略之。

当设定了此校勘符,“行初叶”和“行终止”除了相称整个字符串先导和得了外,还各自相配在那之中的换行符的现在和事先。那和
Perl 的 /m 立异符是等效的。假设指标字符串中尚无“\n”字符大概方式中从不 ^
或 $,则设定此修正符未有任何功效。

A(PCRE_ANCHORED)
要是设定了此改正符,情势被威胁为“anchored”,即强制仅从指标字符串的开端早先相称。此效率也能够透过适当的格局本身来贯彻(在
Perl 中贯彻的不二法门办法)。

情势更正符: 形式勘误符是符号在整人体模型式之外的.

i (PCRE_CASELESS)
假诺设定此修正符,情势中的字符将同期相配大小写字母。

D (PCRE_DOLLAR_ENDONLY)
借使设定了此革新符,方式中的美金元字符仅十二分目的字符串的结尾。未有此选项时,假使倒数字符是换行符的话,法郎符号也会同盟此字符以前(但不会合作任何其余换行符从前)。若是设定了
m 改进符则忽略此选项。Perl 中未有与其等价的核查符。

您恐怕感兴趣的小说:

  • [正则表达式]贪欲情势与非贪婪形式
  • MySQL 字符串格局匹配扩展正则表明式形式相称
  • 正则表明式方式勘误符
    比如/esi
  • Javascript中正则表达式的大局相称情势剖析
  • PHP正则表明式的逆向引用与子方式深入分析
  • php正则表达式的方式改正符和逆向引用使用介绍
  • 正则表明式教程之形式校订符使用介绍
  • 正则表明式之
    贪婪与非贪婪方式详解(概述)
  • JavaScript
    正则表明式中global形式的风味

m (PCRE_MULTILINE)
私下认可情形下,PCRE
将对象字符串作为纯粹的1“行”字符所组成的(乃至里头饱含有换行符也是如此)。“行起先”元字符(^)仅仅相称字符串的
初叶,“行终止”元字符($)仅仅相称字符串的甘休,也许最后三个字符是换行符时其前方(除非设定了
D 修正符)。那和 Perl 是同壹的。