解决问题的难题---正则表达式

简介

正则表达式(Regular expression),通常缩写为regex,是一种字符串匹配的文本模式,它包括一些普通字符(从a-z之间的字母)还有特殊字符(又被称之为元字符)正则表达式也使用单个字符串来描述,匹配一系列匹配某个句法规则的字符串。

 

目前,许多编程语言都有支持正则表达式,而在python中,正则表达式是通过re模块来实现的。

举个例子:

  • runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多次)。

  • runoo*b,可以匹配 runob、runoob、runoooooob 等,* 号代表字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。

  • colou?r 可以匹配 color 或者 colour,? 问号代表前面的字符最多只可以出现一次(0次、或1次)

一些比较常见的特殊符号和用法:

特殊字符:又称之为元字符,含有特殊含义,如果需要匹配这些特殊字符。,就要对字符进行转义,就是将\反斜杠字符放在他们前面。

 限定符:是用来指定正则表达式的一个组件需要出现多少次才能满足匹配,一共有:*,+,?或者{n},{n,}或者{n,m}一共六种,而正则表达式的限定符有:

 由于.*+这些限定符都比较贪婪,他们会尽可能多的匹配,所以有时剧情需要,我们需要关掉非贪婪模式

假如为了匹配以下的html文档中的章节标题

<h1>我是谁我在哪</h1>
c
//在贪婪模式下匹配:
/<.*>/
这样的情况就自动匹配了从<h1>开头到<\h1>结尾的所有内容,而如果我们只是需要将标签<h1>匹配,就需要启动非贪婪模式,而加上?就代表启动了非贪婪模式,比如
/<.*?>/        匹配了开始和结尾的<h1>
/<\w+?>/       只匹配开始的<h1>标签

定位符:将正则表达式固定到开始或者结尾

 运算优先级:从高到低

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值