正则表达式修饰符(/u,/i,/s,/m,/g)匹配含义

今天在了解“正则表达式绕过”的时候,发现“正则表达式修饰符”是很重要一件事情,而我们往往会忽略它,特意给大家分享一下:

 

最常用的正则表达式修饰符

/u 表示按unicode(utf-8)匹配(主要针对多字节比如汉字)

/i 不区分大小写匹配(如果表达式里面有 a, 那么 A 也是匹配对象)

/s 单行匹配

/m 多行匹配

/g 全局匹配(全文查找出现的所有匹配字符,返回的结果可以是多个;如果不加/g最多只会匹配一个)

 

注意:

以上这些修饰符是可以混合使用的。例如 /ig、/ie等。

/ig (全文查找、忽略大小写)

 

其它正则表达式修饰符

/U 只匹配最近的一个字符串;不重复匹配

/x 将模式中的空白忽略

/A 强制从目标字符串开头匹配

/D 如果使用$限制结尾字符,则不允许结尾有换行

/e 配合函数preg_replace()使用, 可以把匹配来的字符串当作正则表达式执行;

 

正则表达式修饰符PHP用法示例:

<?php
$str = '欢迎来到付杰博客:fuieace.com';
preg_match("/[\x{4e00}-\x{9fa5}a-zA-Z0-9_-]+/u",$str,$res)
var_dump($res);
付杰
  • ¥ 298.0元
  • 市场价:398.0元
  • ¥ 159.0元
  • 市场价:499.0元
  • ¥ 69.0元
  • 市场价:69.0元
  • ¥ 79.0元
  • 市场价:99.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: