您的位置:

PHP正则表达式匹配教程

PHP正则表达式匹配教程

更新:

一、什么是正则表达式

正则表达式是一种用于搜索、匹配、替换某种文本的字符串模式,常用于处理文本数据、校验输入数据等。在PHP中,可以使用preg系列函数(preg_match、preg_replace等)处理正则表达式。

二、正则表达式语法

正则表达式语法包含了一些特定的字符和语法规则,常用的语法规则包括:

  • 字符匹配:使用单个字符匹配特定的字符,如字符a匹配输入字符串中的字符a。
  • 字符集合:使用字符集合匹配一组字符,如[abc]匹配输入字符串中的字符a、b、c。
  • 量词:用于指定字符或字符集合出现的次数,如a{3}匹配aaa。
  • 选择符:用于匹配多个可选的内容,如a|b匹配a或b。
  • 分组:用于对正则表达式的一部分进行分组,方便后续操作,如(a|b){3}匹配aaa、aab、aba等。
  • 反义:用于匹配除了指定字符或字符集合之外的内容,如[^abc]匹配输入字符串中除了a、b、c之外的字符。

三、实例演示

1. 匹配手机号码

$pattern = '/^1[3-9]\d{9}$/';
$mobile = '13912345678';
if(preg_match($pattern, $mobile)){
    echo '匹配成功';
}else{
    echo '匹配失败';
}

说明:
该正则表达式使用了量词和字符集合,匹配以1开头,第二位为3-9的数字,后续跟9位数字的手机号码。因为手机号码格式较为固定,所以可以使用正则表达式进行校验。

2. 替换HTML标签

$pattern = '/<[^>]+>/';
$content = '

这是一段有着大标题的文本

'; $result = preg_replace($pattern, '', $content); echo $result;

说明:
该正则表达式使用了字符集合和量词,匹配一段HTML标签(以<开头,非>字符的内容,以>结尾)。在替换时,将匹配到的标签替换成空字符,即删除了所有HTML标签。

3. 提取URL链接中的域名

$pattern = '/[a-zA-z]+:\/\/[^\s]*/';
$link = '这是一篇示例文章,请阅读原文获取更多信息。';
preg_match($pattern, $link, $matches);
$domain = parse_url($matches[0])['host'];
echo $domain;

说明:
该正则表达式使用了字符集合、量词和分组,匹配一段URL链接(包括协议和域名,后续可能会有其他内容)。在获取到匹配结果之后,使用parse_url函数解析出域名部分,即可获取到该URL链接对应的域名。