python 部分少见正则表达式 用法

    xiaoxiao2021-12-14  14

    一直以为正则表达式用的不错了 今晚仔细学习发现很多还不到位,之前忽略的一些用法

    1.(...)

        匹配括号中的任意正则表达式

    2.(?#...)

        注释,忽略括号内的内容

    3.(?=...)

        表达式'...'之前的字符串,

        在字符串’ liutest ’中 (?=test) 会匹配'liu'

    4.(?!...)

        后面不跟表达式'...'的字符串,

        如果’liu’后面不是字符串’ test ’,那么 (?!test) 会匹配'liu'

    5.(?<=...)

       跟在表达式’…’后面的字符串符合括号之后的正则表达式

        正则表达式’ (?<=abc)def ’会在’ abcdef ’中匹配’ def ’

    6.(?<!...)

        括号之后的正则表达式不跟在’…’的后面

    7.'(?:)' 

    无组捕获

    当你要将一部分规则作为一个整体对它进行某些操作,比如指定其重复次数时,你需要将这部分规则用 ’(?:’ ‘)’ 把它包围起来,而不能仅仅只用一对括号,那样将得到绝对出人意料的结果。

    例:匹配字符串中重复的 ’ab’

    >>> s=’ababab abbabb aabaab’

    >>> re.findall( r’/b(?:ab)+/b’ , s )

    ['ababab']

    8.(?iLmsux) 编译选项指定

    Python的正则式可以指定一些选项,这个选项可以写在findall或compile的参数中,也可以写在正则式里,成为正则式的一部分。这在某些情况下会便利一些。具体的选项含义请看后面的compile函数的说明。

    此处编译选项’i’ 等价于IGNORECASE ,L 等价于 LOCAL ,m 等价于 MULTILINE ,s 等价于DOTALL ,u 等价于 UNICODE , x 等价于 VERBOSE 。

    请注意它们的大小写。在使用时可以只指定一部分,比如只指定忽略大小写,可写为 ‘(?i)’,要同时忽略大小写并使用多行模式,可以写为 ‘(?im)’。

    参考:https://img-blog.csdn.net/20130515113723855

    转载请注明原文地址: https://ju.6miu.com/read-971818.html

    最新回复(0)