美文网首页大数据 爬虫Python AI Sql
python正则表达式超精简总结

python正则表达式超精简总结

作者: 头顶一根发的程序猿 | 来源:发表于2019-08-20 10:50 被阅读6次

    1 re.compile返回的是一个正则表达式对象。

    2 下面两种方式等效,在使用正则较少的情况下不用担心直接使用re.match的性能问题,因为match/search会缓存最近的对象。

    prog=re.compile(pattern)result=prog.match(string)# is equivalent to result=re.match(pattern,string)

    3 re对象的方法

    4 match object的方法

    5 match还是search?

    match只检查字符串从0位置开始是否符合,而search则会搜索整个字符串。

    6 贪婪和非贪婪方式

    *等都是贪婪方式。但是后面价格?号改为匹配尽可能少的字符,即*?,+?,??,{m,n}?

    7 标识

    8 一些定位元字符

    9 group分组

    group()和group(0)是匹配串,group(n)[n>0]是第n个子分组, group(L,m,n)可以接受多个index返回元祖,groups()返回所有匹配子组。

    10 捕获组(...)、非捕获组(?:...)和命名组(?P<name>...)

    使用序号1后向引用捕获组(...),使用(?P=name)后向引用命名组(?P<name>...)

    11 前向断言Lookahead Assertions

    (?=...)确定性断言,(?!...)否定性断言。

    12 后向断言lookbehind Assertions

    (?<=...)确定性断言,(?<!...) 否定性断言。后向断言只能是固定长度的。

    13 条件模式(?(id/name)yes-pattern|no-pattern)

    根据id/name引用组存在与否而决定匹配yes-pattern或no-pattern。

    相关文章

      网友评论

        本文标题:python正则表达式超精简总结

        本文链接:https://www.haomeiwen.com/subject/zsyusctx.html