正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。在进行字符串的相关处理的时候,正则表达式将是一个基础的工具。
python当中使用正则表达式极其容易,因为python提供了正则表达式专门的模块----re模块。re模块提供了许多函数,可以帮助你实现各种各样的功能。
接下来我们简单介绍下如何使用python中的re模块,主要说一说常用的函数。
python中匹配时最常用的函数re.findall(pattern,string,flags):有三个参数,前两个是必须给定的,第三个参数是可选参数。功能是在字符串string中寻找和模式pattern匹配的所有子串,这些子串会构成一个列表返回给你。如果没有匹配的任何子串,将会返回空列表。
其中,我们重点说说pattern。pattern是你要给定的模式串,规定这样一个模式需要你了解一定规则。
python中最常用的模式pattern规则:
“.”:可以匹配任意一个字符。
“(re)”:匹配括号内的表达式,也表示一个组。
“\w”:匹配数字、字母和下划线。
“\W”:匹配非数字、字母和下划线。
“\d”:匹配数字。
“\D”:匹配非数字。(只要记住:小写字母和大写字母匹配的内容是互斥的。)
“re+”:代表re出现一次或多次。(至少出现一次)
“re*”:代表re出现零次或多次。(至少出现零次)
“re?”:代表可能出现零次或一次。(要么不出现,要么仅出现一次)
“a|b”:匹配a或者b。
然后,就是最后一个参数flags,可以用来控制匹配的模式。
比如,我们匹配一个字符串是否符合邮箱格式,我们的python程序可以这样写:
re.findall(r'.+@.*\.com', string)
python中替换字符串中的匹配项的函数re.sub(pattern,repl,string,count,flags):五个参数。其中pattern依然是模式串,repl是替换的字符串,string是原始字符串,count是替换的最大次数(0代表替换所有匹配),flags是匹配模式之前介绍过。前三个是必选参数,后两个是可选参数。
比如,我们要把一个字符串中的非数字部分删掉,我们的python程序可以这样写:
num = re.sub(r'\D', "", string)
到此,我们的分享结束~欢迎大家一起探讨~
领取专属 10元无门槛券
私享最新 技术干货