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

正则表达式

发布时间:2020-12-14 06:10:01 所属栏目:百科 来源:网络整理
导读:经典正则表达式 L( ? ) = L("") = {""} If c is a character,L(c) = {"c"} If R 1 ,R 2 are r.e.s,L(R 1 R 2 ) = {x 1 x 2 |x 1 ∈L(R 1 ),x 2 ∈L(R 2 )} L(R 1 |R 2 ) = L(R 1 )∪L(R 2 ) L(R?) = L( ? )∪L(R)∪L(RR)∪··· 匹配符合R的零个或无限多个

经典正则表达式

L(?) = L("") = {""}

If c is a character,L(c) = {"c"}

If R1,R2 are r.e.s,L(R1R2) = {x1x2|x1∈L(R1),x2∈L(R2)}

L(R1|R2) = L(R1)∪L(R2)

L(R?) = L(?)∪L(R)∪L(RR)∪···  匹配符合R的零个或无限多个字符

L((R)) = L(R)

优先级(由高到低):* ,交集 ,并集

括号可以表示组合

?

缩写

字符列表: [a-zA-Z]  匹配括号内任意一个字符

非字符列表: [^a-z]  匹配不在括号内的任意一个字符

字符集: .(dot),d,s

L(R+) = L(RR?)  匹配符合R的一个或多个字符

L(R?) = L(? |R)  匹配符合R的一个或零个字符

?

扩展正则表达式

获取括号中的表达式

m = re.match(r’s*(d+)s*,s*(d+)s*’,’12,34’),have m.group(1) == ’12’,m.group(2) == ’34’

m.group(x)  指代第x对括号匹配到的内容

惰性与贪心匹配

贪心:re.match(r’(d+).*’,’1234ab’) makes group(1) match ’1234’

惰性:re.match(r’(d+?).*’,’1234ab’) makes group(1) match ’1’

界限符

re.search(r’(^abc|qef)’,L)   匹配以abc开头或在任意位置包含qef的字符串

re.search(r’(?m)(^abc|qef)’,L)   匹配以abc开头或在任意位置包含qef的字符串或行

(?m)? 表示该正则可以读取多行数据

re.search(r’rowr(?=baz)’,L)   匹配后面跟着baz的rowr(匹配结果不包括baz)

(?=baz)? 限制匹配结果后续内容

re.search(r’(?<=rowr)baz’,L)   匹配前面是rowr的baz(匹配结果不包括rowr)

(?<=rowr)? 限制匹配结果前面的内容

非线性模式

re.search(r’(S+),1’,L)  匹配后面跟着逗号与其本身的单词? ? eg. foo,foo

(编辑:李大同)

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

    推荐文章
      热点阅读