轻松入门PHP正则表达式(1)
要学习正则表达式的第一步是了解它的作用和组成结构。简单一看,貌似正则表达式的组成部分并不是特别复杂,那我们下面就分别介绍一下
要学习正则表达式的第一步是了解它的作用和组成结构
//——————————————————————————–
1、正则表达式的作用
一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。
//——————————————————————————–
2、正则表达式的组成部分
边界符 原子 元字符 边界符 修正符
//——————————————————————————–
简单一看,貌似正则表达式的组成部分并不是特别复杂,那我们下面就分别介绍一下
//——————————————————————————–
3、边界符
以一对的形式出现,可以自己定义,唯一的要求是两个边界符需要一样。
按照上面的定义我就就可以知道类似// ++ ## @@等都可以作为边界符。
//——————————————————————————–
4、原子
原子是写在边界符之间的,它的作用是匹配字符串的内容。原子有如下几种形式:
[] 表示范围
[0-9] 表示从0-9 //同时可以用转义字符\d表示
[679] 表示6、7、9
[a-z] 表示小写26个字母
[a-zA-Z] 表示小写26个字母和大写26个字母
[a-zA-Z0-9_] 表示常用字符 //同时可以用转义字符\w表示
[\n\r\t\f ] 表示任意一个空白字符,空格、\n\r\t\f //同时可以用转义字符\s表示
>>>>>>>>>#
[^] 表示取反 //这里要注意方块号内外的^表达的含义是不同的
[^0-9] 表示0-9以外的字符 //同时可以用转义字符\D表示
[^a-zA-Z0-9_] 表示常用字符以外的字符 //同时可以用转义字符\W表示
[^\n\r\t\f ] 表示不包含任意一个空白字符,空格、\n\r\t\f //同时可以用转义字符\S表示
未完待续....
在轻松入门PHP正则表达式(1) 中我们已经了解了正则表达式的边界符和原子。那么现在让我们来看下PHP正则表达式中的元字符。
//———————————————
5、元字符
原字符紧跟在原子后面,使用来修饰原子的显示状态的。元字符有如下几种形式:
* 出现 0次、1次、多次
+ 出现 1次、多次
? 出现 0次、1次
>>>>>>>>>#
{m} 出现m次
{m,n} 出现m-n次
{m,} 最少出现m次
>>>>>>>>>#
^ 强制从字符串头部开始比较
$ 强制从字符串尾部开始比较
>>>>>>>>>#
. 表示任意字符但不包含换行回车
>>>>>>>>>#
() 运算优先/将匹配结果存储
在内存中
>>>>>>>>>#
| 正则或 (A|B 表示出现A或出现B)
//——————————————-
6、修正符
i 表示、、不区分大小写
s 将带有回车换行的字符串当做一行来匹配
U 禁止贪婪模式
可能很多人对贪婪模式还是云里雾里,我们下面来举一个实例:
$str="aa222233333bb222bb";
$zz="/aa.*bb/";
正则化可以理解为一种什么法preg_match($zz,$str,$arr);
print_r($arr);
?>
结果:Array ( [0] => aa222233333bb222bb )
>>>>>>>>>###
$str="aa222233333bb222bb";
$zz="/aa.*bb/U";
preg_match($zz,$str,$arr);
print_r($arr);
?>
结果:Array ( [0] => aa222233333bb )
>>>>>>>>>####
看出奥妙了吗,如果禁止了贪婪模式,那么只要匹配成功了一次,就不会继续向下匹配了。
//———————————————————————————-
未完待续...
在轻松入门PHP正则表达式(1) 和轻松入门PHP正则表达式(2) 中,我们学习了PHP正则表达式中的所有组成部分,包括边界符,原子,元字符,修正符。但是如果我们想要使用正则表达式来匹配字符串,还需要学习2个关于正则表达式的函数。
1、preg_match(正则表达式,字符串,匹配数组)//将正则表达式和字符串匹配结果返回在数组中,只匹配一次
例:
<?php
$zz=”/aaa\d+bbb/”;
$str=”aaa11bbbaaa22bbb”;
preg_match($zz,$str,$arr);
print_r($arr);
?>
//可以发现aaa11bbb、aaa22bbb都符合正则表达式,但是数组里只有aaa11bbb一个元??
结果:Array ( [0] => aaa11bbb )
//————————————————————–
2、preg_match_all(正则表达式,字符串,匹配数组)//将正则表达式和字符串匹配结果返回在数组中,匹配所有符合的
例:
<?php
$zz=”/aaa\d+bbb/”;
$str=”aaa11bbbaaa22bbbaaa33bbb”;
preg_match_all($zz,$str,$arr);
print_r($arr);
?>
//数组里有三个元素,它把所有符合正则的字符串都包含了进来
结果:Array ( [0] => Array ( [0] => aaa11bbb [1] => aaa22bbb [2] => aaa33bbb ) )
//————————————————————–
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
热门文章
-
excel文字递增函数公式
2025-02-08 -
数字递增公式
2025-02-08 -
notepad 正则变量运算
2025-02-08 -
C++regex库常用函数及实例
2025-02-08 -
js正则表达式之前瞻后顾与非捕获分组
2025-02-08 -
indesign正则数字和英文之间的空格
2025-02-08 -
C#匹配中文字符串的4种正则表达式分享
2025-02-08 -
PHP正则表达式匹配中文字符
2025-02-08 -
匹配中文汉字的正则表达式介绍
2025-02-08 -
Python正则表达式如何进行字符串替换
2025-02-08 -
orcl中用正则表达式
2025-02-08 -
sql正则表达式excel
2025-02-08 -
dataframe正则表达式
2025-02-08 -
postgress sql正则
2025-02-08 -
el-upload accept 正则表达式
2025-02-08 -
半小时 正则表达式
2025-02-08 -
判断科学计数法的正则
2025-02-08 -
根据url判断静态资源的方法
2025-02-08 -
Java正则表达式-匹配正负浮点数
2025-02-08 -
替换模糊匹配正则-hive
2025-02-08
最新文章
-
一种基于正则表达式的DBC文件解析及报文分析方法[发明专利]
2025-02-08 -
能被5整除的十进制整数的正规表达式
2025-02-08 -
大于0小于等于1的正则表达式
2025-02-08 -
linux grep 26个字母
2025-02-08 -
java pattern 正则表达式
2025-02-08 -
掌握文本编辑器中的搜索和替换技巧
2025-02-08
发表评论