关于php正则表达式的详解
墨初 编程开发 567阅读
正则表达式是一种用于搜索、匹配、替换某种文本的字符串模式,常用于处理文本数据、校验输入数据等。在PHP中,可以使用preg系列函数(preg_match、preg_replace等)处理正则表达式。
正则表达式的语法
正则表达式语法包含了一些特定的字符和语法规则,常用的语法规则包括:
1、字符匹配:使用单个字符匹配特定的字符,如字符a匹配输入字符串中的字符a。
2、字符集合:使用字符集合匹配一组字符,如[abc]匹配输入字符串中的字符a、b、c。
3、量词:用于指定字符或字符集合出现的次数,如a{3}匹配aaa。
4、选择符:用于匹配多个可选的内容,如a|b匹配a或b。
5、分组:用于对正则表达式的一部分进行分组,方便后续操作,如(a|b){3}匹配aaa、aab、aba等。
6、反义:用于匹配除了指定字符或字符集合之外的内容,如[^abc]匹配输入字符串中除了a、b、c之外的字符。
php中正则表达式的使用
1、php正则匹配手机号
$pattern = '/^1[3-9]\d{9}$/'; $mobile = '13912345678'; if(preg_match($pattern, $mobile)){ echo '匹配成功'; }else{ echo '匹配失败'; }
注意:由于手机号的格式固定,可以使用量词与字符集合,匹配以1开头,第二位3到9的数字,后面为9位数字的手机号。
2、php中正则表达式替换标签
$pattern = '/<[^>]+>/'; $content = ' 这是一段有着大标题的文本 '; $result = preg_replace($pattern, '', $content); echo $result;
注意:上面的正则使用了字符集合和量词,匹配一段HTML标签(以<开头,非>字符的内容,以>结尾)。在替换时,将匹配到的标签替换成空字符,即删除了所有HTML标签。
3、php正则表达式提取url
$pattern = '/[a-zA-z]+:\/\/[^\s]*/'; $link = '这是一篇示例文章来源:https://www.73so.com。'; preg_match($pattern, $link, $matches); $domain = parse_url($matches[0])['host']; echo $domain;
注:上面的正则表达式使用了字符集合、量词和分组,匹配一段URL链接。