import re# 判断是否包含英文字符bool(re.search('[a-z]', dest_str))# 判断是否包含?*/\<>:"\| 字符 bool(re.search(r'[?*/\\<>:"|]', dest_str))# 判断是否包含数字字符bool(re.search('[0-9]', dest_str))
注意:如果需要用到 转义字符 需要在字符串前加r 并且写成转义字符
re.search方法
re.search 扫描整个字符串并返回第一个成功的匹配。
函数语法:
re.search(pattern, string, flags=0)
函数参数说明:
匹配成功re.search方法返回一个匹配的对象,否则返回None。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
例子:
importreprint(re.search('www','').span()) # 在起始位置匹配print(re.search('com','').span())# 不在起始位置匹配(0,3)(11,14)
例子2:
importreline="Cats are smarter than dogs";searchObj=re.search( r'(.*) are (.*?) .*',line,re.M|re.I)ifsearchObj:print("searchObj.group() :",searchObj.group())print("searchObj.group(1):",searchObj.group(1))print("searchObj.group(2):",searchObj.group(2))else:print("Nothing found!!")
输出:
searchObj.group() : Cats are smarter than dogssearchObj.group(1): CatssearchObj.group(2): smarter
re.match与re.search的区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
importreline="Cats are smarter than dogs";matchObj=re.match(r'dogs',line,re.M|re.I)ifmatchObj:print("match --> matchObj.group():", matchObj.group())else:print("NO match!!")matchObj=re.search(r'dogs',line, re.M|re.I)ifmatchObj:print("search --> matchObj.group():",matchObj.group())else:print("NO match!!")
输出:
NO match!!search--> matchObj.group(): dogs