php 点 正则表达式,PHP 正则表达式基本语法及说明

什么是正则表达式?简而言之 正则表达式是一种可以用于模式匹配和替换的强有力的工具,通过使用一系列的特殊字符构建匹配模式,然后匹配出相应的内容。

学习正则表达式重要吗?我可以非常负责的告诉你:重要!!!这是博主的亲身经历过后的出来的惨烈的体验。在博主初期接触PHP程序时,一味的求快速学成。忽略了很多重要的东西,正则表达式就是其中之一,从而因为基础不牢固得到了许多的教训,这是后话,就不一一阐述了。在这里奉劝那些新学习PHP程序的同志们,千万不要看亲而跳过正则表达式,不然有的是你后悔的时候。

好了,题外话不多说,现在开始说明一下正则表达式的基础,让自己也温故知新一下。

/*===============================以下是说明文========================================================================*/

1.定界符:顾名思义,界定某种东西的符号,这里是指包含你所写的表达式的特殊符号,可自定义,一般来说使用斜杠 “/”。

例子:"/Love/" 其中斜杠是为定界符,正则表达式一定是由相同两个定界符所包含住的,请谨记。

2.原子:什么是原子?它是构成正则表达式的最基础的部分。

常用的原子有:

a-z,A-z,0-9,下划线,空格,换行符等等

例子:"/[a-z]/",这个正则则是匹配所有小写字母,"[]"的具体说明在后面有说明

小括号包含起来的单元复合:

例子:"/(abc)/",这里表示匹配的字符中一定要出现括号中的内容才能匹配成功,如 abc123能匹配成功 absssc123匹配失败

中括号包含起来的原子表:

例子:"/[a-z]/",这里表示要匹配的字符串中出现原子表中出现的任意内容,就能匹配成功 该示例就是匹配任意小写字母

"/[^a-z]/",在原子表内使用“^”字符这里表示的是非的意思,该示例是匹配任意非小写字母的内容

转义字符:

\d 包含所有数字[0-9]

\D 除所有数字外[^0-9]

\w 包含所有英文字符[a-zA-Z_0-9]

\W 不包含所有英文字符[^a-zA-Z_0-9]

\s 包含空白区域如回车、换行、分页等[\f\n\r]

元字符:

* 匹配前一个内容的0次1次或者多次

.  可以把自己作为任何一个内容供其他字符匹配,空格和回车除外

+ 匹配前一个内容的1次或者多次

? 匹配前一个内容的0次或者1次

| 选择匹配类似PHP中的|(or的意思)(因为这个运算符是弱类型导致前面最为整体匹配);

^ 匹配字符串首部内容(注意这个符号在原子表和其他地方使用的区别)

$ 匹配字符串尾部内容

\b 匹配单词边界,边界可以是空格或者特殊符号

\B 匹配单词边界以外的内容

{m} 匹配前一个内容的重复次数为m次

{m,} 匹配前一个内容的重复的次数到大于等于m次

{m,n} 匹配前一个内容的重复次数m次到M次

() 合并整体匹配,并放入内存

具体作用这里不作详细示例,大家回去自己多多搭配尝试一下摸索一下,这样能把这些东西更好的记在自己的脑子里。

模式修正符

书写模式 : "/正则/模式修正府" 如:"/(asdasd)[0-9]+/iUs";

i 正则内容在匹配的时候不区分大小写

m 在匹配首内容或者尾内容时采用多行识别匹配 匹配每一行

S 将转义回车取消,是为了单行匹配如 . 匹配的时候

x 忽略正则中的空白

A 强制从头开始匹配

D 强制$匹配尾部无任何内容不能有回车或者空格\n

U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束,常用在采集程序的正则表达式

这则表达式运算顺序

() 内存处理 优先级最高

*?+{} 重复匹配内容其次

^$\b 边界处理第三

| 条件处理第四

最后是从左到右的运算顺序计算

正则表达式常用的函数

preg_match('正则表达式',字符串,结果数组)//单个匹配

preg_match_all('正则表达式',字符串,结果数组);//详细采集

preg_replace('正则表达式','要替换的内容','要替换的地方',替换的次数);//替换函数

preg_split("正则表达式","要分割的内容",(切割成多少个(可选)));//分割函数

最后说几句,现在网上有很多前辈们分享已经写好正则表达式出来,这是很好的事情,我们可以把那些正则表达式收集起来,但是最重要的一点就是,收集起来不是用了一次就算了,你需要去理解它,模仿它,最后把它变成自己的东西,要深深的记住一点,不是什么时候都可以找到完全符合自己要求的东西的,如果找不到而你又不理解这东西,那就完蛋了,而如果你理解了这东西的原理,完全可以根据网上类似的把符合自己要求的创造出来。

虽然我写这些东西是为了给自己储备一些东西随时可以用,但是仍希望我写的东西可以给大家带来小小的帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值