轻松入门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小时内删除。

正则表达式理解
« 上一篇
正则表达式解析
下一篇 »

发表评论