一、基础概念
Python 中的 re.compile() 方法是将正则表达式编译成一个对象,这样可以增加代码的重用性,方便后续的操作。re.compile() 方法返回的是一个正则表达式对象,可以调用它的方法来对文本进行匹配操作。
二、函数语法和参数
re.compile(pattern, flags=0)
pattern: 正则表达式
flags: 可选的匹配模式,使用 | 连接多个模式,如 re.I | re.M。具体参数含义参考下面的小标题。
三、匹配模式
1. re.I(re.IGNORECASE)
忽略大小写,即在匹配时不区分字母的大小写。例如,表达式 [A-Z] 匹配小写字母同样匹配大写字母。
2. re.M(MULTILINE)
多行模式,即将每一行看作一个单独的字符串,^ 匹配行的开头,$ 匹配行的结尾。
3. re.S(DOTALL)
单行模式,即将整个文本看作一个字符串,. 匹配任意字符,包括换行符。
4. re.X(VERBOSE)
详细模式,即忽略正则表达式中的空白符(除了字符类中的空格)和注释,使得正则表达式更加易读。
5. re.U(REUNICODE)
Unicode模式,用于处理Unicode字符,例如 \u0020 表示空格。
四、正则表达式对象的方法
1. search()
re_obj.search(string, pos=0, endpos=0)
在指定的字符串中查找匹配项,并返回一个MatchObject对象,如果没有找到匹配项,则返回None。
2. match()
re_obj.match(string, pos=0, endpos=0)
从字符串开始处匹配,如果匹配的话,则返回一个MatchObject对象,如果没有找到匹配项,则返回None。
3. findall()
re_obj.findall(string, pos=0, endpos=0)
查找字符串中所有满足正则表达式的子串,以列表的形式返回。
4. finditer()
re_obj.finditer(string, pos=0, endpos=0)
查找字符串中所有满足正则表达式的子串,以迭代器的形式返回。
五、完整示例代码
import re # 将正则表达式编译成对象 re_obj = re.compile(r'hello', re.I) # 在字符串中查找匹配项 match_res = re_obj.search('Hello, world!') if match_res: print(match_res.group()) # 查找字符串中所有满足正则表达式的子串 findall_res = re_obj.findall('Hello, hello, Hello, world!') print(findall_res) # 查找字符串中所有满足正则表达式的子串,以迭代器的形式返回 finditer_res = re_obj.finditer('Hello, hello, Hello, world!') for match_res in finditer_res: print(match_res)
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/286304.html