PHP基础编程之鬼斧神工的正则表达式-正则表达式基本语法+简单实例
时间:2022-07-22
本文章向大家介绍PHP基础编程之鬼斧神工的正则表达式-正则表达式基本语法+简单实例,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在上一篇博文中,冷月带大家初步了解了正则表达式以及在php中正则表达式的常用函数,相信大家在学习后有一定的收获。今天,冷月将给小伙伴们带来正则表达式的基本语法和一些简单的实例。
正则表达式的基本语法
定界符
表示一个正则表达式的开始和结束,一般用特殊符号来表示。简单来说就是用特殊符号把内容包住。
- /……/
- #……#
- {……} 我们来看一段示例代码:
<?phpvar example = '/[0-9]/'; //在php中推荐用这种方式var example = '#[0-9]#';
var example = '{[0-9]}';
?>
regexpal工具介绍及获取方式
regexpal是一个在线的正则表达式验证工具,我们可以方便的书写我们想要的正则表达式并且直观的看到匹配结果。
如图所示,匹配出0-9的数字,下面待匹配到的结果就会高亮现实。regexpal的官网是https://www.regexpal.com/ 国内访问非常的慢。
原子
原子是正则表达式的最基本的组成单位,分为可见原子和不可见原子。简单来说可见原子就是肉眼可以看见的字符,比如Unicode中的可见字符。而不可见原子包括换行、回车、制表符、空格等非打印字符。
原子的筛选方式
下面用 regexpal为大家举例:
匹配a或者b:
匹配a或者b任意一个原子:
匹配除了a或者b任意一个原子:
原子的集合
量词
简单来说就是记录原子出现的数量,下面列出常见的量词
{n}:前面的原子恰好出现n次
{n,}:前面的原子最少出现n次
{n,m}:表示前面的原子最少出现n次,最多出现m次
*号 :表示前面的原子 出现 0,1或多次 ,等价于{0,}
+:表示前面的原子 出现 1或多次 ,等价于{1,}
?:表示前面的原子 出现 0或1次 ,等价于{0,1}
边界控制
^:匹配字符串开始的位置,也就是说必须以^后的第一个字符开头;
$:匹配字符串结尾的位置,也就是说必须以$前的第一个字符结尾。
模式单元
修正模式:
贪婪模式:匹配结果存在歧义时取其长;
懒惰模式:匹配结果存在歧义时取其短。
常见的修正模式:
U:懒惰匹配
u:贪婪匹配
i:忽略英文字母大小写
x: 忽略空白
简单实例
<?php
$notEmpty = '/.+/'; //非空
$floatTwo = '/d+.d{2}$/'; //保留两位小数
$phone = '/1(3|5|7|8|4)d{9}/'; //手机号
$email = '/^w+(.w+)*@w+(.w+)+$/'; //email
$URL = '/(https?://)?(w+.)+[a-zA-Z]+$/'; //url地址?>
- MySQL service启动脚本浅析(r12笔记第59天)
- 分享WordPress显示评论者IP的归属地及运营商信息的2种方案
- 解决dos2unix/unix2dos报错,并在家目录下生成u2dtmp*文件问题
- 【前沿】TensorFlow Pytorch Keras代码实现深度学习大神Hinton NIPS2017 Capsule论文
- Nginx通过二级目录(路径)映射不同的反向代理,规避IP+端口访问
- MySQL中批量初始化数据的对比测试(r12笔记第71天)
- Golang语言--包的概念、导入与可见性
- MySQL中的change,modify和自增列的关系(r12笔记第70天)
- Golang 值得注意的地方
- MySQL数值类型在binlog中需要注意的细节(r12笔记第69天)
- WordPress评论滑动/拉链解锁myQaptcha修改为自动提交的方法
- MySQL root用户登录的几个小问题(r12笔记第67天)
- Java实现生产者消费者的两种方式(r12笔记第66天)
- Golang语言的函数调用信息
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- CMake入门实战——单个源文件
- [Go] GO语言实战-实现标题闪烁
- Windows平台安装Oracle11.2.0.4客户端报错INS-30131
- 实战丨如何制作一个完整的外卖微信小程序开发项目(已开源)
- CMake入门实战——多个源文件
- CMake入门实战——自定义编译选项
- CMake入门实战——其他
- git报错,远程克隆和更新不下来解决方法
- CMake入门实战——生成安装包
- PyTorch 60分钟入门系列之PyTorch简介
- 解决Nginx转发http后不走https的问题 后端tomcat
- PyTorch 60分钟入门系列之自动求导
- Roslyn 打包 NuGet 包添加改动日志
- PyTorch 60分钟入门系列之神经网络
- Linux 是如何管理内存的?