常用函数:
- 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.
(?