zoukankan      html  css  js  c++  java
  • re模块 | Python 3.5

    https://docs.python.org/3/library/re.html

    http://www.cnblogs.com/PythonHome/archive/2011/11/19/2255459.html

    1.提供正则表达式相关操作

    2.模式串和匹配串可以是Unicode或8-bit字符串,但不能混用

    3.语法

      http://www.cnblogs.com/book-book/p/5411634.html

      '.' 在DOTALL模式下能匹配' '

      '^'、'$'在MULTILINE模式下能匹配多行起始和结束

      (?aiLmsux):

        A: ASCII-only

        I: ignore case

        L: local dependent

        M: multiple line

        S: dot all

        U: Unicode-only

        X: verbose

      (?P<name>...)

      (?P=name)

      (?#...)

      (?<=...)

      (?<!...)

      (?(id/name)yes-pattern|no-pattern)

      A、匹配字符串起始和结束位置

    4.模块内容

      re.compile(pattern, flags=0)

        返回RegexObject对象

        flags有多个时用 '|' 隔开

          re.A  re.ASCII

          re.DEBUG

          re.I   re.IGNORECASE

          re.L   re.LOCAL

          re.M  re.MULTILINE

          re.S   re.DOTALL

          re.X   re.VERBOSE

      re.search(pattern, string, flags=0)

        在string中任意位置匹配,返回第一个匹配到的对象(match object),或返回None

      re.match(pattern, string, flags=0)

        在string起始位置匹配(即使有re.M属性)

      re.fullmatch(pattern, string, flags=0)

        当整个string能被pattern匹配时返回对应的match object,否则返回None

      re.split(pattern, string, maxsplit=0, flags=0)

        用pattern分割string,如果pattern是用括号括起来的,则能被pattern匹配的分割部分也将保留在结果中

        maxsplit不为0时,分割maxsplit次后剩余部分保留在结果中

        若开头(或结尾)能被pattern匹配,则结果列表中会以空串开始(或结束)

        目前: 空pattern将会被忽略,且若pattern可能为空,有FutureWarning,若pattern为空,有ValueError

      re.findall(pattern, string, flags=0)

        找出所有不重叠的匹配子串并返回一个列表

      re.finditer(pattern, string, flags=0)

        找出匹配子串并返回迭代器,若无匹配返回空列表

      re.sub(pattern, repl, string, count=0, flags=0)

        将string中能被pattern匹配的子串替换为repl

        当count不为0时表示替换count次

        repl可以是一个函数

      re.subn(pattern, repl, string, count=0, flags=0)

        同re.sub() 但re.subn()返回包含心字符串和替换词数的二元组

      re.escape(string)

        对string中非字母数字进行转义

      re.purge()

        清除re缓存

      exception:

        re.error(msg, pattern=None, pos=None)

      Regular Expression Object:

        regex.search(string[, pos[, endpos]])

        regex.match(string[, pos[, endpos]])

        regex.fullmatch(string[, pos[, endpos]])

        regex.split(string, maxsplit=0)

        regex.findall(string[, pos[, endpos]])

        regex.finditer(string[, pos[, endpos]])

        regex.sub(repl, string, count=0)

        regex.subn(repl, string, count=0)

        regex.flags

        regex.groups

        regex.groupindex

        regex.pattern

      Match Object:

        match.expand(template)

        match.group([group1,...])

        match.groups(default=None)

        match.groupdict(default=None)

        match.start([group])  返回匹配开始位置

        match.end([group])  返回匹配结束位置

        match.span([group])  返回包含匹配起始结束位置的二元组

        match.pos

        match.endpos

        match.lastindex

        match.lastgroup

        match.re

        match.string

  • 相关阅读:
    LeetCode "Palindrome Partition II"
    LeetCode "Longest Substring Without Repeating Characters"
    LeetCode "Wildcard Matching"
    LeetCode "Best Time to Buy and Sell Stock II"
    LeetCodeEPI "Best Time to Buy and Sell Stock"
    LeetCode "Substring with Concatenation of All Words"
    LeetCode "Word Break II"
    LeetCode "Word Break"
    Some thoughts..
    LeetCode "Longest Valid Parentheses"
  • 原文地址:https://www.cnblogs.com/book-book/p/5429184.html
Copyright © 2011-2022 走看看