标签:show 问题 reg 域名 贪婪模式 界定 匹配 lte 结果
preg_replace()支持数组替换
$p =array(‘/[0-3]/‘,‘/[4-6]/‘,‘/[7-9]/‘);
$replace=array(‘你‘,‘好‘,‘啊‘);
$sub="0scsd4jff8jndjd";
$str1=preg_replace($p,$replace,$sub);
show($str1);
如果目标字符串是数组,则preg_replace会输出所有的元素,而preg_filter()只保留替换后的元素
$p =array(‘/[0-3]/‘,‘/[4-6]/‘,‘/[7-9]/‘);
$replace=array(‘你‘,‘好‘,‘啊‘);
$sub=array(‘jhdh3‘,‘jhb‘,‘dhcd7‘,‘s34‘,‘ooi‘);
$str1=preg_replace($p,$replace,$sub);
show($str1);
preg_grep()是阉割版的preg_filter,输出符合模式的原字符串而不进行匹配
preg_split($pattert,$subject);explode(); 根据pattern把字符串分割为数组
preg_quote($str)正则运算符转移
界定符 表示一个正则表达式的开始和结束 常用/……/ 或 #……#
正则表达式工具 regexpal
原子
可见原子
不可见原子:换行符\n 回车\r 制表符\t 空格直接在模式中键入空格就可以匹配到了
建议:匹配中文的时候最好把要匹配的中文转换成unicode编码,再写进模式,以防止编码问题出现的匹配错误。工具:unicode编码转换工具
原子的集合
. 匹配除换行符之外的任意字符
\d 匹配任意一个十进制数字,即[0-9]
\s 匹配一个不可见原子,即[\f\n\r\t\v]
\w 匹配任意一个数字,字母,下划线,即[a-zA-Z0-9_]
量词
{n} n次
{n,} 至少n次
{n.m} n到m次
* 零到多次
+ 1到多次
? 零到1次
边界控制
^ 匹配字符串开始的位置
$ 匹配字符串结束的位置
模式单元
()匹配其中的整体为一个原子
贪婪匹配(默认):结果存在歧义时取其长
懒惰匹配(在结束界定符后加大写的U):结果存在歧义时取其短
比如:$pattern=‘/imooc.+123/‘
$subject="I love imooc__123456789";
默认的贪婪模式匹配输出为:imooc__123456789
把模式改为:$pattern=‘/imooc.+123/U‘;
即懒惰匹配,输出为:imooc__123
常见修正模式
U 懒惰匹配
i 忽略大小写
x 忽略正则表达式中的空白
s 让元字符 ‘ . ‘ 匹配包括换行符在内的所有字符
常见正则表达式
非空 .+
保留两位小数的浮点数 \d+\.\d{2}$ 应用:货币……
中国大陆手机号:共11位,第一位是1,第二位是3|4|5|7|8 1(3|4|5|7|8)\d{9}
email ,没有权威模式 ^\w+(\.\w+)*@\w+\.(\w+)+$
url http://www.baidu.com 协议:://域名.顶级域名(协议可有可无常见的有http和HTTPS,顶级域名一定为字母)
^(https?://)?(\w+\.)+[a-zA-Z)+$ 第一个?表示http后面的s可有可无,第二个问号表示整个协议可有可无
标签:show 问题 reg 域名 贪婪模式 界定 匹配 lte 结果
原文地址:http://www.cnblogs.com/yolo-bean/p/7736550.html