您当前的位置: 首页 >  Python

彭世瑜

暂无认证

  • 2浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python编程:re正则库

彭世瑜 发布时间:2018-01-10 22:43:27 ,浏览量:2

常用函数:

  • match 从头匹配
  • search 匹配包含
  • findall 匹配所有,返回列表
  • split 匹配到的字符作为列表分隔符
  • sub 匹配字符并替换
import re

# match
res = re.match("I", "ILoveYou1314")
print(res)  # 
print(res.group())  # I

# []匹配区间
res = re.match("[a-zA-Z]*", "ILoveYou1314")
print(res.group()) # ILoveYou

# ^开头,$结束
res = re.search("^I*", "ILoveYou1314")
print(res.group()) # I

# .任意字符,*零次或多次
res = re.search(".*u", "ILoveYou1314")
print(res.group()) # ILoveYou

# +匹配1次或多次
res = re.search("\d+", "ILoveYou1314")
print(res.group()) # 1314

# {n, m}匹配n到m
res = re.findall("\d{1,3}", "I1Love234You1314")
print(res) # ['1', '234', '131', '4']

# ?匹配0次或1次
res = re.findall("ov?", "I1Love234You1314")
print(res) # ['ov', 'o']

# | 或
res = re.findall("abc|ABC", "abcefdAbcfdfABC")
print(res) # ['abc', 'ABC']

# 命名
res = re.search("(?P\d{3})(?P\w{4})", "123abcefdAbcfdfABC")
print(res.groupdict()) # {'id': '123', 'name': 'abce'}

# 拆分
res = re.split("\d+", "123abcefdAbc123fdfABC")
print(res) # ['', 'abcefdAbc', 'fdfABC']

# 替换
res = re.sub("\d+", "|", "123abcefdAbc123fdfABC")
print(res) # |abcefdAbc|fdfABC

# 匹配斜杠
res = re.search(r"\\",r"123ab\cefdAbc123fdfABC")
print(res.group()) # \

# flags
# re.I  忽略大小写  re.M 忽略多行  re.S 匹配任意字符
res = re.findall("abc",r"123abccefdAbc123fdfABC",flags=re.I)
print(res) # ['abc', 'Abc', 'ABC']

# help(re)
"""

    re - Support for regular expressions (RE).

    The special characters are:
        "."      Matches any character except a newline.
        "^"      Matches the start of the string.
        "$"      Matches the end of the string or just before the newline at
                 the end of the string.
        "*"      Matches 0 or more (greedy) repetitions of the preceding RE.
                 Greedy means that it will match as many repetitions as possible.
        "+"      Matches 1 or more (greedy) repetitions of the preceding RE.
        "?"      Matches 0 or 1 (greedy) of the preceding RE.
        *?,+?,?? Non-greedy versions of the previous three special characters.
        {m,n}    Matches from m to n repetitions of the preceding RE.
        {m,n}?   Non-greedy version of the above.
        "\\"     Either escapes special characters or signals a special sequence.
        []       Indicates a set of characters.
                 A "^" as the first character indicates a complementing set.
        "|"      A|B, creates an RE that will match either A or B.
        (...)    Matches the RE inside the parentheses.
                 The contents can be retrieved or matched later in the string.
        (?aiLmsux) Set the A, I, L, M, S, U, or X flag for the RE (see below).
        (?:...)  Non-grouping version of regular parentheses.
        (?P...) The substring matched by the group is accessible by name.
        (?P=name)     Matches the text matched earlier by the group named name.
        (?#...)  A comment; ignored.
        (?=...)  Matches if ... matches next, but doesn't consume the string.
        (?!...)  Matches if ... doesn't match next.
        (?
关注
打赏
1665367115
查看更多评论
0.0496s