php 正则 修饰符,php正则中的修饰符

php中函数preg_match_all( ) 的作用是进行全局正则表达式匹配,在手册上看到了这个例子:

preg_match_all ("|]+>(.*)[^>]+>|U",

"example:

this is a test
",

$out, PREG_PATTERN_ORDER);

/*

’的字符>零个或多个字符一个或多个未包含‘>’的字符>

*/

print_r ($out);

?>

上面那个正则表达式的意义已经写在程序里了。

结果是:

Array

(

[0] => Array

(

[0] => example:

[1] =>

this is a test

)

[1] => Array

(

[0] => example:

[1] => this is a test

)

)

注意到了程序里面的那个U。把U去掉的结果是:

Array

(

[0] => Array

(

[0] => example:

this is a test

)

[1] => Array

(

[0] => example:

this is a test

)

)

很有意思,于是我以为这个U的作用是不理会前面的语句。

关于这个修饰符意义如下:

/regexp/i

不区分大小写的匹配

/regexp/s

使句点(.)匹配任何字符,包括换行符( )

/regexp/x

从模式中删除空白符和注释

/regexp/m

使^匹配换行符 ( )之后的内容,美元符号($)匹配换行符 ( )之前的内容

/regexp/e

如果替换字符串是PHP代码,使用eval()执行该代码来得到实际的替换字符串。

PHP的Perl兼容正则表达式函数也支持在Perl中不支持的其他修饰符:

修饰符

意 义

/regexp/U

颠倒子模式的贪婪性;*和+尽可能少地匹配而不是尽可能多。

/regexp/u

把模式字符串当作UTF-8编码对待

/regexp/X

如果一个反斜杠之后跟着没有特殊意义的字符,将产生一个错误

/regexp/A

把锚定位在字符串的开头就像模式中有^一样

/regexp/D

使$字符仅匹配一行的末尾

/regexp/S

使表达式解析器更加小心地检查模式的结构,使得第二次运行时(如在一个循环中)加快速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值