在上一篇博文中,冷月带大家初步了解了正则表达式以及在php中正则表达式的常用函数,相信大家在学习后有一定的收获。今天,冷月将给小伙伴们带来正则表达式的基本语法和一些简单的实例。
正则表达式的基本语法
定界符
表示一个正则表达式的开始和结束,一般用特殊符号来表示。简单来说就是用特殊符号把内容包住。
-
/……/
-
……#
-
{……}
我们来看一段示例代码:
<?php
var example = '/[0-9]/'; //在php中推荐用这种方式
var example = '#[0-9]#';
var example = '{[0-9]}';
?>
regexpal工具介绍及获取方式
regexpal是一个在线的正则表达式验证工具,我们可以方便的书写我们想要的正则表达式并且直观的看到匹配结果。
如图所示,匹配出0-9的数字,下面待匹配到的结果就会高亮现实。regexpal的官网是https://www.regexpal.com/ 国内访问非常的慢。但是没有关系,冷月为大家找到了一个国内的镜像版本,如何获取呢?大家可以关注冷月的微信公众号:学长冷月。回复:正则表达式。冷月将会把整理好的regexpal工具和学习资料,一起发给您。
原子
原子是正则表达式的最基本的组成单位,分为可见原子和不可见原子。简单来说可见原子就是肉眼可以看见的字符,比如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地址
?>
欢迎关注我的公众号:学长冷月,获得独家整理的学习资源和日常干货推送。
如果您对我的专题内容感兴趣,也可以关注我的博客:guoyu7.com