首页 > 编程语言 >PHP正则表达式匹配教程

PHP正则表达式匹配教程

时间:2023-08-18 13:11:47浏览次数:45  
标签:字符 教程 匹配 正则表达式 pattern preg 集合 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链接对应的域名。

标签:字符,教程,匹配,正则表达式,pattern,preg,集合,PHP
From: https://www.cnblogs.com/10zhan/p/17640211.html

相关文章

  • jquery.nice-select 教程
    jQueryNiceSelect是一个基于jQuery的优雅选择框插件,它可以美化网页中的下拉选择框。下面是使用jQueryNiceSelect的基本步骤:引入jQuery和jQueryNiceSelect:在你的HTML文件中,首先需要引入jQuery和jQueryNiceSelect的脚本文件。你可以从官方网站下载最新版本的......
  • 无涯教程-Perl - ucfirst函数
    描述该函数返回的EXPR值仅将第一个字符大写。如果省略EXPR,则使用$_。语法以下是此函数的简单语法-ucfirstEXPRucfirst返回值此函数返回第一个字符为大写的String。例以下是显示其基本用法的示例代码-#!/usr/bin/perl-w$string='thecatsatonthemat.';$u_......
  • php发送小程序订阅消息
    微信文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html#%E8%AE%A2%E9%98%85%E6%B6%88%E6%81%AF%E8%AF%AD%E9%9F%B3%E6%8F%90%E9%86%921.小程序后台创建消息模板 2.小程序用户点击按钮订阅dingyue(){//console.log('订阅......
  • AI全版本下载 AI最新版安装包下载(附安装教程) 系列软件
    illustrator2022v26.0.1是由Adobe公司设计的一款全球最为知名的矢量图形设计软件,该软件为用户们提供了大量的图形所需要的常用工具和强大的功能,如图标设计、徽标、字体、颜色、图标、壁纸、信息图设计等等,可以帮助设计师大大提高工作效率,并且操作也是非常的简单,现已广泛应用于广......
  • apache开启php的伪静态模式,出现No input file specified
    Thinkphp教程中提供的APACHE伪静态模式出现Noinputfilespecified,打开.htaccess在RewriteRule后面的index.php教程后面添加一个“?”完整代码如下.htaccessRewriteEngineonRewriteCond$1!^(index.php|images|robots.txt)RewriteRule^(.*)$/index.php?/$1[QSA,PT,L......
  • MySQL客户端工具 phpMyAdmin MySQL Workbench HeidiSQL Sequel Pro DBeaver
    MySQL是一种流行的关系型数据库管理系统,它被广泛用于Web应用程序和企业级应用程序的开发中。目前,市面上有不少好用的MySQL客户端工具,如Navicat,SQLyog等。但这些产品虽然功能强大,却都是收费的,而且费用还不低。幸运的是,收费产品并不是你的唯一选择,目前也有不少开源的工具。如果你不想......
  • 无涯教程-Perl - tr函数
    描述这不是功能。这是音译运算符;它将SEARCHLIST中所有出现的字符替换为REPLACEMENTLIST中的字符。语法以下是此函数的简单语法-tr/SEARCHLIST/REPLACEMENTLIST/返回值此函数返回替换或删除的字符数。例以下是显示其基本用法的示例代码-#!/usr/bin/perl-w$string='......
  • 【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战
    并发编程介绍当今软件开发领域越来越强调性能和伸缩性,因此,利用并发编程可以更好地利用计算资源,提高应用程序的性能和响应速度。以下是一些关于并发编程的相关信息供您参考。什么是并发编程并发编程是指在一个程序中同时执行多个独立的计算任务,并通过各种手段来协调不同任务之间的交......
  • VX小程序开发基础教程2--
    https://www.bilibili.com/video/BV1834y1676P   P809:361.4组件  scroll-view组件基本使用1.5组件 swiper和swiper-item组件基本使用 ......
  • bh001- Blazor hybrid / Maui 使用摄像头和扫码快速教程
    1.建立工程bh001_camera_barcode源码2.添加nuget包BlazorHybrid.Maui.Permissions因为源码比较长,主要是一些检查和申请权限相关代码,就不占用篇幅列出,感兴趣的同学直接打开源码参考3.添加安卓摄像头权限双击编辑文件,或者手工添加<uses-permissionandroid:name="a......