至少写出一种验证139开头的11为的手机号码的正则表达式
思考
手机号码的正则表达式的编写
延伸正则表达式的组成及编写方法
正则表达式的作用:分割、查找、匹配、替换字符串
分隔符:正斜线(/)、hash符号(#)以及取反符号(~)
通用原子:\d \D \w \W \s \S
元字符: . * ? ^ $ + {n} {n,m} [] () [^] | [-]
模式修正符: i m e s U x A D u
i 不区分大小写
m 将我们字符串的每一行去进行匹配,,前提是你们那里面有换行。
e 是我们进行replace里面的语句,去进行一个PHP语句的处理。
s 是修正 点的换行
U是取消。。。
x 忽略我们模式中的
A
D
u
后向引用
贪婪模式
后向引用
$str = '<b>abc</b>';
$pattern = '<b>.*</b>';
//去除掉<b>
preg_replace($pattern,'\1',$str);
\1替换的就是第一个括号的里面的东西,只要第一个括号里面的东西
贪婪模式
$str = '<b>abd</b><b>bcd</b>';
$pattern = '/<b>.* </b>/';
preg_replace_all($pattern,'\1',$str);
这是因为是贪婪的。
.*? 这就是取消贪婪模式。
第二种方式
.*? 和U 不能同时用
正则表达式里面的PCRE函数
preg_match() preg_match_all() preg_replace(0 preg_split()
一般不会考
$match 是匹配到的内容。
会匹配到 “中文”
如果没有+ 只会匹配到 “中”
先写出一个要匹配的字符串
自左向右的顺序使用正则表达式的院子和元字符进行拼接
最终加入模式修正符
不要死记硬背模式
//139 8888 8888
//
$str = '13988888888';
$pattern = '/^139\d{8}$/';
preg_match($pattern,$str,$match);
一网打尽
请写一个正则表达式,匹配页面中所有img标签中的src值。
';
$pattern = '/<img.?src=".*?".?/?>/i';
preg_match($pattern,$str,$match);
$str = '
$pattern = '/<img.?src="(.*?)".?/?>/i';
preg_match($pattern,$str,$match);
加上一个()之后,就是后向引用。。。会取出src的值