PHP中正则的使用方法
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-02-04 10:27:51
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
preg_match
主要使用啦preg_match这个函数,作用是在字符串中只进行一次匹配,返回值为0(没有匹配)或1(有一次匹配),出错时返回false,如果要匹配所有字符串可以使用preg_match_all
匹配手机号
/** * 验证手机号是否正确 * @author honfei * @param number $mobile */ function is_mobile($mobile) { if (!is_numeric($mobile)) { return false; } return preg_match('#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,1,3,6,7,8]{1}\d{8}$|^18[\d]{9}$|^166\d{8}$#', $mobile) ? true : false; }
使用分组从一段字符串中匹配出指定的内容
$field = 'title[>]'; //解析字段中 age[>]这一类的标识识 $reg='/([\w\(\)\.\-]+)(\[(\>|\>\=|\<|\<\=|\!|\<\>|\>\<|\!?~)\])?/i'; preg_match($reg, $field, $match); var_dump($match); //下面用匹配全部字符串 preg_match_all($reg, $field, $match); var_dump($match);
结果如图
preg_replace从字符串中替换内容
这个函数用起来很方便,第一个参数是要查找的字符串(可以是数组),第二个是要替换的字符串(可以是数组)如果需要后向引用可以使用 $1 $2 $3来引用对应的匹配组,第三个是目标字符串,前两个参数数组替换是对应的关系,更多请参考
http://php.net/manual/zh/function.preg-replace.phppreg_replace_callback ( mixed $pattern , callable $callback , mixed $subject )
替换方式改为使用一个回调函数来生成要替换的字符串,回调函数接收一个参数,这个参数是每次匹配到的要替换的字符串如下
/* 一个unix样式的命令行过滤器,用于将段落开始部分的大写字母转换为小写。 */ $fp = fopen("php://stdin", "r") or die("can't read stdin"); while (!feof($fp)) { $line = fgets($fp); $line = preg_replace_callback( '|<p>\s*\w|', function ($matches) { return strtolower($matches[0]); }, $line ); echo $line; } fclose($fp);