PHP中正则的使用方法

来源:赵克立博客 分类: PHP 标签:正则发布时间:2018-02-04 10:00:36最后更新:2018-02-04 10:27:51浏览:1698
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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);

结果如图

image.png

preg_replace从字符串中替换内容

这个函数用起来很方便,第一个参数是要查找的字符串(可以是数组),第二个是要替换的字符串(可以是数组)如果需要后向引用可以使用 $1 $2  $3来引用对应的匹配组,第三个是目标字符串,前两个参数数组替换是对应的关系,更多请参考

http://php.net/manual/zh/function.preg-replace.php


preg_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);

preg_split使用正则分隔字符串为一个数组




微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python