目录
1. re.compile函数
2. re.match函数
3. 其他函数
使用XPath可以从HTML源码中提取数据,但是XPath有局限性,只能在结构化的HTML或XML格式的文档中。正则表达式则比较通用。
1. re.compile函数
语法格式如下:
re.compile(patten,[flags]) #patten:一个字符串形式的正则表达式 #flags:可选参数,re.M为多行模式;re.S表示匹配包括换行符在内的任意字符,等
例如:
import re
obj1=re.compile(r"d+") #预加载模式正则表达式,匹配数字一次或多次
obj2=re.compile(r"d{6}") #预加载模式正则表达式,匹配数字六次
str = "a1001010086"
result1 = obj1.findall(str)
result2 = obj2.findall(str)
print(result1)
print(result2)
运行结果如下:
['1001010086'] ['100101']
2. re.match函数
re.match在正则中有讲过match()函数的匹配模式,该函数主要尝试从字符串的起始位置匹配,如果起始位置没有匹配成功,返回none,匹配成功则返回一个包含位置的元组类型的数据。
语法格式如下:
re.match(pattern,string,[flags]) #pattern:模式字符串 #string:要匹配的字符串 #flags:可选参数,表示标志位,用于控制匹配方式
例如:
import re #导入模块 pattern = re.compile(r'my_w+') #模式字符串,匹配以my开头的字符串 string1 = 'MY__SCHOOL my_school' #要匹配的字符串1 string2 = '学校MY__SCHOOL my_school' #要匹配的字符串2 match1 = pattern.match(string1,re.I) #匹配字符串,不需分字母大小写 match2 = re.match(r'my_w+',string1,re.I) match3 = pattern.match(string1) #匹配字符串,需分字母大小写 match4 = re.match(r'my_w+',string1) match5 = pattern.match(string2,re.I) #匹配字符串,不需分字母大小写 match6 = re.match(r'my_w+',string2,re.I) print(match1) print(match2) print(match3) print(match4) print(match5) print(match6)
运行结果如下:
NoneNone None None None
可以看到match1和match2的结果不同,我也不太清楚其中缘由(有大佬可以在评论区指点一下)
3. 其他函数
正则表达式(4)_WHJ226的博客-CSDN博客
可以参考本博主的第4篇博文。



