搜索
re.match函数
re.match(pattern, string, flags=0) # 从字符的开始匹配
pattern:正则表达式
string:要匹配的字符
flags=修饰符
re.search方法
re.search(pattern, string, flags=0) # 从字符的任意位置开始匹配
pattern:正则表达式
string:要匹配的字符
flags=修饰符
re.match与re.search方法返回值解析
返回参数 | 描述 |
---|
group(num=0) | 匹配整个表达式的字符串,group()可以一次输入多个组号,此时返回元祖。 |
groups() | 返回一个包含所有小组的字符串元祖 |
re.compile方法
re.compile(pattern[, flags]) # 预编译,如果匹配,可以提高效率。
pattern: 正则表达式
flags:修饰符
re.findall方法
re.findall(string[, pos[, endpos]])
string:带匹配的字符串
pos:可选参数,指定匹配起始位置,默认为0
endpos:可选参数,指定匹配结束位置,默认为字符串长度
举例
import re
line = "Cats are smarter than dogs"
searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
if searchObj:
print ("searchObj.group() : ", searchObj.group())
print ("searchObj.group(1) : ", searchObj.group(1))
print ("searchObj.group(2) : ", searchObj.group(2))
else:
print ("Nothing found!!")
替换
re.sub方法
re.sub(pattern, repl, string, count=0, flags=0)
pattern:正则表达式
repl:替换之后的字符串,也可以是一个函数
string:原始字符串
count:最大替换次数
flags:修饰符
切割
re.split
re.split(pattern, string[, maxsplit=0, flags=0])
pattern:正则表达式
string:要匹配的字符
maxsplit :分隔次数,maxsplit=1分隔一次,默认为0,不限制次数
flags:修饰符
正则表达式修饰符 - 可选标志
修饰符 | 描述 |
---|
re.I | 使大小写不敏感 |
re.L | 做本地化识别匹配 |
re.M | 多行匹配 影响^和$ |
re.S | 使.匹配包括换行在内的所有字符 |
re.U | 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. |
re.X | 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。 |