数码资讯
解析PHP中的正则表达式和模式匹配
PHP的普通文字处理提供了两种方式,一是PCRE(PCRE库是一种实现Perl 5和轻微的语法和语义上的差异(见下文)的正则表达式模式匹配函数集函数。当前的实现相当于Perl 5.005。);另一个是POSIX。 使用一个非常类似Perl语法函数库PCRE函数模型。表达式必须以分隔符分隔,如前斜杠(
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
PHP的普通文字处理提供了两种方式,一是PCRE(PCRE库是一种实现Perl 5和轻微的语法和语义上的差异(见下文)的正则表达式模式匹配函数集函数。当前的实现相当于Perl 5.005。);另一个是POSIX。
使用一个非常类似Perl语法函数库PCRE函数模型。表达式必须以分隔符分隔,如前斜杠()。分离器可以使任何非字母数字字符,除了反斜杠()和非空字节空格的ASCII字符。如果用于表达的分隔符,需要使用反斜杠的逃脱。由于PHP 4.0.4,你可以使用Perl风格的(){ } { },<>,并作为分隔符。更详细的解释参见模式语法。
在分隔符的末端,图案修饰符可以跟着模式修饰符来影响匹配效果。查看模式修饰符。
对于PCRE图式修正
我(pcre_caseless)
如果设置了这个修饰符,模式中的字符将同时匹配小写字母。
S(pcre_dotall)
如果此修饰,圆形点元字符(。)在模式匹配所有字符,包括换行符。如果没有这个设置,它不包括换行符,这相当于Perl的 / S修饰符。排除字符类,如{一} ^,总是匹配换行符,是否修改设置。
M(pcre_multiline)
默认情况下,文件由目标字符串作为一行字符(包括换行符)。开始排元字符(^)仅匹配字符串的开始。行结束字符($)比赛结束的字符串,或最后一个字符的前面是换行符(除非D修饰符设置)。这是因为Perl一样。当此修饰符设置开始和结束,一排排比赛的开始和结束的整个字符串,和匹配换行符之前和之后,分别。这相当于Perl的 /米的改性剂。如果没有目标字符串中的字符或模式中没有或$ $,此修饰符的设置没有作用。
X(pcre_extended)
如果你设置这个模式不改,逃避或不在字符类中的空白字符数据总会被忽略,性格和在班级和下一个换行符转义字符以外的#之间被忽略。这相当于Perl中的x修饰符修饰符,编译模式可以包含在注释中。注意:这只用于数据字符。空白字符仍然不能出现在序列模式的特殊字符,如序列((引进了亚组(如果空格将导致编译错误看在语法定义的序列的特殊字符。(如错误)。
E(preg_replace_eval)
如果这个修改设置,preg_replace()替换字符串中的后向引用后替换,替换字符串作为PHP代码进行评估(eval函数),并使用线由于在替换字符串中实际参与。单引号、双引号和反斜杠()和参照性空后将反斜杠代替。
只有preg_replace()使用该改性剂,与其他PCRE函数忽略修饰语。
一个(pcre_anchored)
如果设置此指令模式,则强制为锚模式,也就是说,从目标字符串搜索的起始位置唯一的约束。这种效果也可以使用合适的模型构造,而Perl是实现这种模式的唯一途径。
D(pcre_dollar_endonly)
如果设置了此修饰符,则在元末符号字符模式的结尾只匹配目标字符串。如果没有设置修改,当字符串以换行符结束,将匹配美元符号(但不换行,任何换行符之前)。如果设置M修饰符,则修饰符在Perl中是忽略的。不等同于此修饰符修饰符。
S
当模型需要反复使用时,为了获得匹配速度,值得花一些时间进行一些额外的分析。如果设置此修饰符,则将执行此附加分析。仅适用于非锚定模式匹配的模型分析(即不固定起始字符)。
U(pcre_ungreedy)
这个限定符颠倒了量词贪婪模式。默认为非贪婪量词量词,通过后使其成为贪婪和Perl的方式。这不兼容。它也可以用于模式修饰集(U)设置,或在具有问号的量词中标记其非贪婪(例如)。在非贪婪模式,通常不超过pcre.backtrack_limit字符。
X(pcre_extra)
此限定符开PCRE不与Perl兼容的附件。在任意模式后,公司一个反斜杠没有特殊含义的字符将导致一个错误,为了保护这些特点保证向后兼容性。默认情况下,Perl中,反斜杠后的字符是没有特殊的意义,是当前文本的性质。修饰语控制的其他特征。
J(pcre_info_jchanged)
内部选项(J)修改本地pcre_dupnames选项允许子组的名称。(只能由内部选项、外部选项)生成错误。
U(pcre8)
这将打开一个修饰符与Perl的其他函数不兼容。模式字符串被认为是UTF-8。此限定符从UNIX版本的PHP 4.1.0或更高的PHP 4.2.3 Win32 PHP 4.3.5 UTF-8版本可用。检查此修饰符的模式是否合法。PCRE的兼容Perl是附加功能。模式字符串被视为UTF-8。这种改性剂可以从PHP 4.1.0或更大的Unix和PHP 4.2.3 Win32。UTF-8有效性的模式是因为PHP 4.3.5检查。
使用一个非常类似Perl语法函数库PCRE函数模型。表达式必须以分隔符分隔,如前斜杠()。分离器可以使任何非字母数字字符,除了反斜杠()和非空字节空格的ASCII字符。如果用于表达的分隔符,需要使用反斜杠的逃脱。由于PHP 4.0.4,你可以使用Perl风格的(){ } { },<>,并作为分隔符。更详细的解释参见模式语法。
在分隔符的末端,图案修饰符可以跟着模式修饰符来影响匹配效果。查看模式修饰符。
对于PCRE图式修正
我(pcre_caseless)
如果设置了这个修饰符,模式中的字符将同时匹配小写字母。
S(pcre_dotall)
如果此修饰,圆形点元字符(。)在模式匹配所有字符,包括换行符。如果没有这个设置,它不包括换行符,这相当于Perl的 / S修饰符。排除字符类,如{一} ^,总是匹配换行符,是否修改设置。
M(pcre_multiline)
默认情况下,文件由目标字符串作为一行字符(包括换行符)。开始排元字符(^)仅匹配字符串的开始。行结束字符($)比赛结束的字符串,或最后一个字符的前面是换行符(除非D修饰符设置)。这是因为Perl一样。当此修饰符设置开始和结束,一排排比赛的开始和结束的整个字符串,和匹配换行符之前和之后,分别。这相当于Perl的 /米的改性剂。如果没有目标字符串中的字符或模式中没有或$ $,此修饰符的设置没有作用。
X(pcre_extended)
如果你设置这个模式不改,逃避或不在字符类中的空白字符数据总会被忽略,性格和在班级和下一个换行符转义字符以外的#之间被忽略。这相当于Perl中的x修饰符修饰符,编译模式可以包含在注释中。注意:这只用于数据字符。空白字符仍然不能出现在序列模式的特殊字符,如序列((引进了亚组(如果空格将导致编译错误看在语法定义的序列的特殊字符。(如错误)。
E(preg_replace_eval)
如果这个修改设置,preg_replace()替换字符串中的后向引用后替换,替换字符串作为PHP代码进行评估(eval函数),并使用线由于在替换字符串中实际参与。单引号、双引号和反斜杠()和参照性空后将反斜杠代替。
只有preg_replace()使用该改性剂,与其他PCRE函数忽略修饰语。
一个(pcre_anchored)
如果设置此指令模式,则强制为锚模式,也就是说,从目标字符串搜索的起始位置唯一的约束。这种效果也可以使用合适的模型构造,而Perl是实现这种模式的唯一途径。
D(pcre_dollar_endonly)
如果设置了此修饰符,则在元末符号字符模式的结尾只匹配目标字符串。如果没有设置修改,当字符串以换行符结束,将匹配美元符号(但不换行,任何换行符之前)。如果设置M修饰符,则修饰符在Perl中是忽略的。不等同于此修饰符修饰符。
S
当模型需要反复使用时,为了获得匹配速度,值得花一些时间进行一些额外的分析。如果设置此修饰符,则将执行此附加分析。仅适用于非锚定模式匹配的模型分析(即不固定起始字符)。
U(pcre_ungreedy)
这个限定符颠倒了量词贪婪模式。默认为非贪婪量词量词,通过后使其成为贪婪和Perl的方式。这不兼容。它也可以用于模式修饰集(U)设置,或在具有问号的量词中标记其非贪婪(例如)。在非贪婪模式,通常不超过pcre.backtrack_limit字符。
X(pcre_extra)
此限定符开PCRE不与Perl兼容的附件。在任意模式后,公司一个反斜杠没有特殊含义的字符将导致一个错误,为了保护这些特点保证向后兼容性。默认情况下,Perl中,反斜杠后的字符是没有特殊的意义,是当前文本的性质。修饰语控制的其他特征。
J(pcre_info_jchanged)
内部选项(J)修改本地pcre_dupnames选项允许子组的名称。(只能由内部选项、外部选项)生成错误。
U(pcre8)
这将打开一个修饰符与Perl的其他函数不兼容。模式字符串被认为是UTF-8。此限定符从UNIX版本的PHP 4.1.0或更高的PHP 4.2.3 Win32 PHP 4.3.5 UTF-8版本可用。检查此修饰符的模式是否合法。PCRE的兼容Perl是附加功能。模式字符串被视为UTF-8。这种改性剂可以从PHP 4.1.0或更大的Unix和PHP 4.2.3 Win32。UTF-8有效性的模式是因为PHP 4.3.5检查。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。