正则表达式的作用:分割,查找,匹配,替换字符串。
分隔符:正斜线(/),hash符号(#)以及取反符号(~)。
通用原子:\d , \D , \w ,\W , \s , \S 。
原子修饰符: . * ? ^ $ + {n} {n,} {n,m} [] () [^] | [-]
模式修正符:i m e s U x A D u
i 表示在和模式进行匹配不区分大小写
m 将模式视为多行,使用^和
U 正则表达式的特点:就是比较“贪婪”,使用该模式修正符可以取消贪婪模式
\d 匹配一个数字字符。等价于 [0-9]。
• \D 匹配一个非数字字符。等价于 [^0-9]。
• \f 匹配一个换页符。等价于 \x0c 和 \cL。
• \n 匹配一个换行符。等价于 \x0a 和 \cJ。
• \r 匹配一个回车符。等价于 \x0d 和 \cM。
• \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
• \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
• \t 匹配一个制表符。等价于 \x09 和 \cI。
• \v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
• \w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
• \W 匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]’。
(pattern) 匹配pattern 并获取这一匹配。
(?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
(?!pattern) 负向预查,与(?=pattern)作用相反




<?php
/*1. 正则表达式的作用: 分割、查找、匹配、替换字符串
*
* 正则函数: preg_match(), preg_match_all(), preg_replace(), preg_split()
*/
//139开头的11位手机号码
$str = '13988888888';
$pattern = '/^139\d{8}$/';
preg_match($pattern, $str, $match);
var_dump($match);
//请匹配所有img标签中的src的值:
$str = '<img alt="高清图片" src="av.jpg" />';
$pattern = '/<img.*?src="(.*?)".*?\/?>/i';
preg_match($pattern, $str, $match);
var_dump($match);
/*
* 常用正则表达式:
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g
提取信息中的中国手机号码:(86)*0*13\d{9}
* */
网友评论