前言
Python中提供了re模块用于正则表达式的操作,在实现时可以用re模块提供的多种方法对字符串进行处理,re模块在使用时,需要先应用import语句导入,即
import re
不知道其他人对于开始学习正则表达式是什么感觉,反正我是迷糊了很久。下面我们就来仔细讲讲re模块提供的那些方法吧
一.匹配字符串的方法
匹配字符串可以使用re模块提供的match()、search()和findall()等方法
1.使用match()方法进行匹配
match()方法用于从字符串的开始处进行匹配,如果在起始位置匹配成功则返回Match对象,否则返回None,语法格式如下:
re.match(pattern,string,[flags])
pattern:表示模式字符串,由要匹配的正则表达式转换而来
string:表示要匹配的字符串
flags:可选参数,表示标志位,用于控制匹配方式
例如,匹配字符串是否以“hg”开头,不区分大小写:
实现代码:
运行结果:
解释一下运行结果吧,从上面的结果来看,字符串string是以“hg_”开头(不区分大小写),所以返回一个Match对象,而字符串str不是以“hg_”开头,当用match()方法从字符串起始位置开始匹配时,遇见不符合条件的字母便不会再匹配了,所以返回“None”
Match对象中包含了匹配值的位置(使用start()方法获取)和匹配数据(使用end()方法获取),通过span()方法可以返回匹配位置的元组,通过string属性可以获取要匹配的字符串。
例:
运行结果:
2.使用search()方法进行匹配
search()方法用于在整个字符串中搜索第一个匹配的值,如果匹配成功,则返回Match对象,否则返回 None
语法格式如下:
re.search(pattern,string,[flags])
例如,搜索一个以“hg”开头的字符串,不分大小写
实现代码:
运行结果:
从运行结果可以看出来search()方法搜索字符串时,并不一定只能搜索字符串的起始位置,其他位置也可以进行搜索
3.使用findall方法进行匹配
findall()方法用于在整个字符串中搜索所有符合正则表达式的字符串,并以列表的形式返回,如果匹配成功,则返回含有匹配结构的列表,否则返回空列表
语法格式如下:
re.findall(pattern,string,[flags])
例如,搜索一个以“hg”开头的字符串,不分大小写
实现代码:
运行结果:
二.替换字符串
可以用sub()方法用于实现字符串的替换,语法格式如下:
re.sub(pattern,repl,string,count,flags)
pattern:表示模式字符串,由要匹配的正则表达式转换而来
repl:表示替换的字符串
string:表示要匹配的字符串
count:可选参数,表示模式匹配后替换的最大次数,默认值为0,表示替换所有的匹配
flags:可选参数,表示标志位,用于控制匹配方式
例如,隐藏个人信息:
实现代码:
运行结果:
三.使用正则表达式分割字符串
split()方法用于实现根据正则表达式分割字符串并以列表的形式返回,语法格式如下:
re.split(pattern,string,[maxsplit],[flags])
maxsplit:可选参数,表示最大拆分次数
例如,从给定的URL地址中提取出请求地址和各个参数
实现代码:
运行结果:
希望这些对大家有所帮助,自我感觉字符串的正则表达式对于初学者还是挺难的,不过好好加油吧,越是艰难越向前つ﹏⊂
加油加油 |