python RE模块 匹配字符串
日期: 2019-07-18 分类: 跨站数据 346次阅读
一:匹配字符串
使用re模块,首先需要导入re模块
import re
匹配字符串这个模块我就介绍几三个方法,
match()函数 search()函数 findall()函数。接下来我分别来介绍和示例
1:match()函数
概括:match()方法用于从字符串开始处进行匹配,如果在开始的位置匹配成功则返回match对象,如活匹配失败则返回None
语法:re.match(pattern,string,[flags])
参数说明:
- pattern 表示模式字符串,由要匹配的正则表达式转化而来。
- string 表示要匹配的字符串。
- flags 可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小。常用的标志如下图所示。
标志 | 说明 |
---|---|
A或者ASCLL | 对于\w\W\b\B\d\D\s和\S只进行ASCLL匹配 |
I或者IGNORECASE | 执行不区分字母大小的匹配 |
M或者MULTILINE | 将^和$用于包括整个字符串的开始和结束的没一行 |
S或者DOTALL | 使用(.)字符串匹配所有字符,包括换行符 |
X或者VERBOSE | 忽略模式字符串中的未转义的空格和注释 |
例子:匹配字符串是否已"mr_"开头的,不区分大小写
pattern = r'mr_\w+' # 模式字符串
string = 'MR_SHOP mr_shop' #要匹配的字符串
match = re.match(pattern,string,re.I) # 匹配字符串不区分大小
print match
string1 = '项目名称MR_SHOP mr_shop'
match1 = re.match(pattern,string,re.I) # 匹配字符串不区分大小
print match1
# <_sre.SRE_Match object at 0x0000000002BDA510>
# <_sre.SRE_Match object at 0x00000000030A36B0>
2:search()函数
概括:search()方法用于搜索整个字符串中搜索第一个匹配的值,如果匹配成功则返回macth对象,否则返回None
语法:re.search(pattern,string,[flags])
参数说明:
- pattern 表示模式字符串,由要匹配的正则表达式转化而来。
- string 表示要匹配的字符串。
- flags 可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小。常用的标志和match()模块是一个表。
代码示例:
pattern = r'mr_\w+' # 模式字符串
string = 'MR_SHOP mr_shop' #要匹配的字符串
match = re.search(pattern,string,re.I) # 匹配字符串不区分大小
print match
string1 = '项目名称MR_SHOP mr_shop'
match1 = re.search(pattern,string,re.I) # 匹配字符串不区分大小
print match1
<_sre.SRE_Match object at 0x0000000002DAA510>
<_sre.SRE_Match object at 0x00000000032F36B0>
和上面的match()各人感觉没什么区别
3:findall()函数
概括:使用findall()方法用于在整个字符串中搜索所有符合正则表达式的字符串,并且以列表的形式返回,如果匹配成功则返回包含匹配结构的列表否则返回空列表。本人在开发时用的这个函数是比较多的。
语法:re.findall(pattern,string,[flags])
参数说明:
- pattern 表示模式字符串,由要匹配的正则表达式转化而来。
- string 表示要匹配的字符串。
- flags 可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小。常用的标志和match()模块是一个表。
直接上代码吧:
pattern = r'mr_\w+' # 模式字符串
string = 'MR_SHOP mr_shop' #要匹配的字符串
match = re.findall(pattern,string,re.I) # 匹配字符串不区分大小
print match
string1 = '项目名称MR_SHOP mr_shop'
match1 = re.findall(pattern,string) # 匹配字符串区分大小
print match1
# ['MR_SHOP', 'mr_shop']
# ['MR_SHOP', 'mr_shop']
在来一个简单的例子。
pattern = r'[1-9]{1,3}(\.[0-9]{1,3}){3}' # 模式字符串
str1 = '127.0.0.1 192.168.1.66'
match = re.findall(pattern,str1)
print match
# ['.1', '.66']
pattern = r'([1-9]{1,3}(\.[0-9]{1,3}){3})' # 模式字符串
str1 = '127.0.0.1 192.168.1.66'
match = re.findall(pattern,str1)
for i in match:
print i[0]
# 127.0.0.1
# 192.168.1.66
这里就可以直接拿到IP地址了。
我是阿旺,表格也是纯手打,还不是很熟练,但是我会慢慢的去练习的。原本认为自己做不到的事最后却做成了,感觉真的很好!明天更新替换字符串
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:Python 基础
精华推荐