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地址?>