今天通过观看php100视频,学习了php中的正则表达式的相关知识。正则表达式具有强大的字符串处理功能,可以对字符串进行匹配、查找、分割、替换,为我们在程序或者网页中处理字符串是提供了巨大的方便。
首先,介绍一下正则表达式中的一些基本元素:
(1) 、 原子 (普通字符: a-z A-Z 0-9 、原子表、
转义字符)
①
a-z A-Z _ 0-9
//
最常见的字符
②
(abc) (skd)
//
用圆括号包含起来的单元符合
③
[abcs] [^abd]
//
用方括号包含的原子表,原子表中的
^
代表排除或相反内容
④转义字符
/d
包含所有数字
[0-9]
/D
除所有数字外
[^0-9]
/w
包含所有英文字符、数字和下划线
[a-zA-Z_0-9]
/W
除所有英文字符外、数字和下划线
[^a-zA-Z_0-9]
/s 包含空白区域如回车、换行、分页等 [/f/n/r]
/s 包含空白区域如回车、换行、分页等 [/f/n/r]
(2) 、 元字符
(有特殊功能的字符)
* 匹配前一个内容的 0 次 1 次或多次
.
匹配内容的
0
次
1
次或多次,但不包含回车换行
+
匹配前一个内容的
1
次或多次
?匹配前一个内容的
0
次或
1
次
|
选择匹配类似
PHP
中的
|
(因为这个运算符合是弱类型导致前面最为整体匹配)
^
匹配字符串首部内容
$
匹配字符串尾部内容
/b
匹配单词边界,边界可以是空格或者特殊符合
/B
匹配除带单词边界意外内容
{m}
匹配前一个内容的重复次数为
M
次
{m,}
匹配前一个内容的重复次数大于等于
M
次
{m,n}
匹配前一个内容的重复次数
M
次到
N
次
( )
合并整体匹配,并放入内存,可使用
/1 /2
…
依次获取
(3)
、
模式修正符
(系统内置部分字符
i
、
m
、
S
、
U
…
)
i 正则内容在匹配时候不区分大小写(默认是区分的)
m
在匹配首内容或者尾内容时候采用多行识别匹配
s
将转义回车取消是为单行匹配如
.
匹配的时候
x
忽略正则中的空白
A
强制从头开始匹配
D
强制
$
匹配尾部无任何内容
/n
U
禁止贪婪匹配
只跟踪到最近的一个匹配符并结束,
常用在采集程序上的正则表达式
其次,正则中的运算顺序也很重要。
( )
圆括号因为是内存处理所以最高
*
?
+ { }
重复匹配内容其次
^ $ /b
边界处理第三
|
条件处理第四
最后按照运算顺序计算匹配
最后,还学习了正则表达式的一些应用.
1.匹配功能:
preg_match_all 全部匹配函数
preg_match_all ( string pattern, string subject, array matches [, int flags] )
用途:截取比较详细的内容,采集网页,分析文本
2。替换功能
preg_ replace 正则替换函数
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
提示 : 1 、替换内容可以是一个正则也可以是数组正则
2
、替换内容可以通过修正符
e
来解决替换执行内容
用途:替换一些比较复杂的内容上,也可以用于内容的转换上
3。分割功能:
preg_ split 正则切割
preg_split
( string pattern, string subject [, int limit [, int flags]] )
通过正则表达式来切割相关内容,类似之前学过的 explode 切割函数,但 explode
只能按照一种方式切割有局限性。