正则表达式的简单分析

* 正则表达式模式修正符
* i 忽略大小写
* m 多行视作一行
* g 全局匹配
* s .圆点匹配换行符,默认不包括换行
* x 空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的# 以及下一个换行符之间的所有字符, 包括两头,也被忽略。
* e preg_replace() 在替换字符串中对逆向引用作正常的替换
* u 此修正符启用了一个PCRE中与Perl不兼容的额外功能,模式字符串被当成UTF-8
* U: 正则表达式的特点:就是比较“贪婪”.*.+ 反有字符都符全条件

$str="abCd
efg";
preg_match("/c(.*)e/is", $str,$m);
var_dump($m); //array(2) { [0]=> string(7) "Cd e" [1]=> string(5) "d " }
//s .圆点匹配换行符,默认不包括换行
//i 忽略大小写
//m 修改^开头的作用,换行后也可以用
preg_match("/^e/", $str,$m);//有换行时,这样匹配不到
preg_match("/^e/m", $str,$m);//array(1) { [0]=> string(1) "e" }

//g 在测试时报错,Unknown modifier 'g',因此建议使用preg_match_all
$str="在替换中引导错误的对像";
preg_match_all("/替/", $str,$m);
var_dump($m);//array(1) { [0]=> array(1) { [0]=> string(1) "替" } }

$url = 'https://www.baidu.com/index.html?number=1&page=1';
preg_match("/www(.*)com/i",$url, $m);
var_dump($m); //array(2) { [0]=> string(13) "www.baidu.com" [1]=> string(7) ".baidu." }

猜你喜欢

转载自www.cnblogs.com/Mareker/p/9254796.html