正则匹配空字符正则表达式修饰符i、g、m、s、U、x、a、D、e等。正则表达式中常⽤的模式修正符有i、g、m、s、U、x、a、D、e 等。
它们之间可以组合搭配使⽤。
i 不区分(ignore)⼤⼩写;
例如: /abc/i 可以匹配 abc、aBC、Abc
g 全局(global)匹配
如果不带g,正则过程中字符串从左到右匹配,到第⼀个符合条件的即匹配成功,返回
如果带g,则字符串从左到右,到每个符合条件的都记录下来,知道字符串结尾位置
例如:
var str = 'aaaaaaaa'
var reg1 = /a/;  str.match(reg1)  // 结果为:["a", index: 0, input: "aaaaaaaa"]
var reg2 = /a/g; str.match(reg2)  // 结果为:["a", "a", "a", "a", "a", "a", "a", "a"]
m 多(more)⾏匹配
若存在换⾏\n并且有开始^或结束$符的情况下,和g⼀起使⽤实现全局匹配,
因为存在换⾏时默认会把换⾏符作为⼀个字符任务匹配字符串是个单⾏,
g只匹配第⼀⾏,添加m之后实现多⾏,每个换⾏符之后就是开始
var str = "abcggab\nabcoab";
var preg1 = /^abc/gm;  str.match(preg1)  // 结果为:["abc", "abc"]
var preg2 = /ab$/gm;  str.match(preg2)  // 结果为:["ab", "ab"]
s 特殊字符圆点 . 中包含换⾏符
默认的圆点 . 是匹配除换⾏符 \n 之外的任何单字符,加上s之后, . 中包含换⾏符
$str = "abggab\nacbs";
$preg = "/b./s";
preg_match_all($preg, $str,$matchs);
print_r($matchs);//Array ( [0] => Array ( [0] => bg [1] => b [2] => bs ) )
U 只匹配最近的⼀个字符串;不重复匹配;
$mode="/a(.*?)c/";
$preg="/a.*c/U";//这两个正则返回相同的值
$str="abcabbbcabbbbbc" ;
preg_match($mode,$str,$content);  echo $content[0];//abc
preg_match($preg,$str,$content);  echo $content[0];//abc
//修正符:x 将模式中的空⽩忽略;
//修正符:A 强制从⽬标字符串开头匹配;
//修正符:D 如果使⽤$限制结尾字符,则不允许结尾有换⾏;
/
/修正符:e 配合函数preg_replace()使⽤, 可以把匹配来的字符串当作正则表达式执⾏;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。