点击上方分类专栏、进行系统性学习(文末可扫码领取资料)
0、flags 功能标志位(以下各方法均可传入该参数)
- 功能标志位的作用是扩展正则表达的匹配功能。常用的
flag
:
-
re.A
:元字符只能匹配 ASCII 码re.I
:匹配时忽略字母大小写re.S
:使得.
元字符可以匹配换行符re.M
:使^
、$
可以匹配每一行的开头和结尾位置
- 可以同时使用多个功能标志位,如
flags=re.I|re.S
。
1、re.compile():生成正则表达式对象
regex=re.compile(pattern, flags=0)
-
pattern
:正则表达式对象(字符串)flags
:功能标志位,扩展正则表达式的匹配
import re
pattern = r'(?:<b class=\"d_n\">)?[【\[]\d{3,5}[】\]](?:</b>)?'
#help(re.compile)
"""
compile(pattern, flags=0)
Compile a regular expression pattern, returning a
Pattern object.
"""
re_pattern = re.compile(pattern)
# 查看 re_pattern 可使用的方法
#help(re_pattern)
#help(re_pattern.search)
"""
search(string, pos=0, endpos=9223372036854775807) method
of re.Pattern instance
Scan through string looking for a match, and return a
corresponding match object instance.
Return None if no position in the string matches.
"""
#help(re_pattern.finditer)
"""
finditer(string, pos=0, endpos=9223372036854775807) method
of re.Pattern instance
Return an iterator over all non-overlapping matches
for the RE pattern in string.
For each match, the iterator returns a match object.
"""
res = re_pattern.search("sadasd <b class='d_n'>xxx [1002] xxx </b> sdasd ")
# <class '_sre.SRE_Match'>
#print(type(res))
# ['end', 'endpos', 'expand', 'group', 'groupdict',