加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式的应用

发布时间:2020-12-13 22:10:09 所属栏目:百科 来源:网络整理
导读:####正则表达式的应用 php有两套正则函数:由PCRE库提供的函数,以"preg_"为前缀命名 由POSIX扩展提供的函数,以"ereg_"为前缀命名(自PHP5.3就不在推荐使用POSIX正则函数库) 在PHP中,一个正则表达式分为三个部分:分隔符,表达式和修饰符 #####元字符 b 是正

####正则表达式的应用

  • php有两套正则函数:由PCRE库提供的函数,以"preg_"为前缀命名
  • 由POSIX扩展提供的函数,以"ereg_"为前缀命名(自PHP5.3就不在推荐使用POSIX正则函数库)
  • 在PHP中,一个正则表达式分为三个部分:分隔符,表达式和修饰符

#####元字符 b是正则表达式规定的特殊代码,代表单词的开头或者结尾

bheb.*bisb 这里的'.'是元字符,匹配换行符以外的任意字符,’‘同样是元字符,它代表的是数量。因此"."和""意味着任意数量不包含换行的字符

1) 匹配以字符"a"开头的单词:

bw*b (w*)代表着任意数量的字母或数字

2)匹配一个或者更多的连续的数字

d+ "+"匹配重复一次或更多次

3)匹配刚好6个字符的单词

bw{6}b

4)匹配电话号:

0dd-dddddddd 或者0d{2}-d{8}

#####起始和结束元字符

  • ^:匹配字符串的开始
  • $:匹配字符串的结束

1)匹配QQ号

^d{5,11}$ 匹配的开始和结束都是数字的且连续5~11次

点号:要匹配DIV里的内容,就需要点号匹配

1)抓取title的内容 <title>.*</title>

#####正则表达式匹配规则

字符组

[] 匹配单个字符

1)c[aou]t匹配cat,cot,cut然而不匹配caout

######转义

  • 在php中使用表示转义,比如查找"*","?" 就出现问题,应该使用"*"或者"?"

######反义

  • 查找的字符不属于某个字符类,或者表达式和一直定义相反,这时需要反义

1)不包含空白符的字符串:S+

2)用尖括号括起来,以a开头的字符串:<a[^>]+>

######分支

  • 分支就是存在多种可能的匹配情况,[]只能匹配单个字符,对于多个字符此时既可用分支

(c|h|a|to)at 可以代表"cat","hat","aat","toat"

1)匹配前三位或者前四位区号的电话号码

0d{2}-d{8}|0d{3}-d{7}

匹配带括号的电话区号

(0d{2})[-]?d{8}|0d{2}[-]?d{8}

#######分组 重复多个字符,可以用小括号指定子表达式,然后规定这个子表达式的重复次数

1)简单IP地址匹配

(d{1,3}.){3}d{1,3}

分析:匹配三位数字加上一个英文句号(重复三次):(d{1,3}.){3}

2)匹配IP地址

((2[0-4]d|25[0-5]|[01]?dd?).)(3)(2[0-4]d|25[0-5]|[01]?dd?)

######反向引用

反响引用用于重复搜索前面某个分组匹配的文本

b(w+)bs+1b

以上表达式可以匹配重复的单词,既b(w+)b会被捕获到编号1的分组中

#####环视 顺序肯定环视(?=exp):

(?=exp) 匹配exp之前的值

逆序肯定环视(?<=exp):

(?<=exp)匹配exp之后的值

顺序否定环视

1)匹配3位数字,而且这3位数字的后面不能是数字

d(3)(?!d)

逆序否定环视

(?<!exp)匹配前面不是exp的位置

1)前面不是小写字母的7位数字

(?<![a-z])d{7}

#####贪婪/懒惰模式

需要匹配尽可能少的字符,也就是懒惰匹配

*? 重复任意次,但尽可能少重复

正则表达式的常用模式
  • 忽略大小写模式(i)
    • 正则表达式将不区分匹配内容的大小写
  • 多行模式(m)
  • 点号通配模式(s):使正则表达式的点号元字符可以匹配换行符
  • 懒惰模式(u):"u"相当于"?"表示懒惰匹配
常用的正则表达式
  • 手机号正则:(13[4-9]|15[01789]|18[239])d{8}
  • 匹配email正则:w{3,16}@w{1,64}.w{2,5}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读