Python提供了re模块,用于实现正则表达式的操作,在现实试,可以使用re模块提供的方(search()、match()、findall())进行字符串的处理,也可以使用re模块的compile()方法将模式字符串转换我正则表达式对象,然后再使用正则表达式对象的相关方法来操作字符串。
一. 匹配字符串
匹配字符串可以使用re模块提供的match()、search()、findall()等方法。
1、使用match()方法进行匹配
match()方法用于从字符串的开始出进行匹配,如果在起始位置匹配成功,在返回Match对象,否则返回None,其语法格式为:
re.match(pattern,string,[flahs]) #pattern:表示模式字符串,有要匹配的正则表达式转换而来;string:表示要匹配的字符串;flags:可选参数,表示标志位,用于控制匹配方式。
案例演示:
import re #导入模块
pattern = r'(13[3-9\d{8}])$|(15[01289]\d{8})$'
mobile ='13634222222'
match=re.match(pattern,mobile) #进行模式匹配
if match ==None: #判断是否为None,为真表示匹配失败
print (mobile,"不是有效的中国移动号码")
else:
print(mobile, "是有效的中国移动号码")
mobile ='13144222221'
match=re.match(pattern,mobile)
if match ==None:
print (mobile,"不是有效的中国移动号码")
else:
print(mobile, "是有效的中国移动号码")
2、使用search()方法进行匹配
match()方法用于在整个字符串中搜索的第一个匹配的值,如果在起始位置匹配成功,在返回Match对象,否则返回None,其语法格式为:
re.match(pattern,string,[flahs]) #pattern:表示模式字符串,有要匹配的正则表达式转换而来;string:表示要匹配的字符串;flags:可选参数,表示标志位,用于控制匹配方式。
演示案例:
import re #导入re模块包
pattern= r'(黑客)(抓包)(监听)(Trojan)' #模式字符串
about ='我是一名程序员,我想研究下黑客方面的书,想研究Trojan。'
match= re.search(pattern,about) #进行模式匹配
if about==None: #判断是否为None,为真表示匹配失败
print (about,"检查结果:安全!")
else:
print(about,"检查结果:出现危险词汇!")
about ='我是一名程序员,我想学习Python语言,充实自己!'
match= re.search(pattern,about)
if about==None:
print (about,"检查结果:安全!")
else:
print(about,"检查结果:出现危险词汇!")
3、使用findall()方法进行匹配
findall()方法用于在整个字符串中搜索所有符合正则表达式的字符串,并以列表的形式返回,如果匹配成功则返回包含匹配结构的列表,否则返回空列表。其语法格式如下:
re.findall(pattern,string,[flahs]) #pattern:表示模式字符串,有要匹配的正则表达式转换而来;string:表示要匹配的字符串;flags:可选参数,表示标志位,用于控制匹配方式。
谢谢!