Python正则表达式字符串的匹配、替换、分割、查找方式
作者:pNull
这篇文章主要介绍了Python正则表达式字符串的匹配、替换、分割、查找方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Python正则表达式字符串匹配、替换、分割、查找
1、search(pattern, string, flags=0) 在一个字符串中查找匹配
2、findall(pattern, string ,flags=0) 找到匹配,返回所有匹配部分的列表
3、sub(pattern, repl, string , count=0, flags=0) 将字符串中匹配正则表达式的部分替换为其他值
4、split(pattern, string ,maxsplit=0, flags=0) 根据匹配分割字符串,返回分隔符串组成的列表
用法:
In [1]: import re In [2]: str1='imooc video=1000' In [3]: str1.find('1000')#可以查找出索引值 Out[3]: 12 In [4]: str1='imoocvideo=1000' In [5]: str1.find('1000') Out[5]: 11 In [6]: info=re.search(r'\d+',str1)#'\d'代表任意一个数字,'+'可以匹配数字一次或者无限次,只能匹配最前面的 In [7]: info Out[7]: <_sre.SRE_Match at 0xb6bf9b48> In [8]: info.group() Out[8]: '1000' In [1]: import re In [2]: str1='java=1000,python=9090' In [3]: info=re.findall(r'\d+',str1)#找到所有匹配的字符串,并把它们放到一个列表中 In [4]: info Out[4]: ['1000', '9090'] In [5]: sum([int(x) for x in info]) Out[5]: 10090 In [25]: def add1(match):#传入的match是一个字符串对象, ....: val=match.group()#匹配的字符串 ....: num=int(val)+1 #强制转换 ....: return str(num)#强制转化 ....: In [28]: info=re.sub(r'\d+',add1,str4)#sub就是替换字符串和函数 In [29]: info Out[29]: 'python video =10001' In [35]: str6='imooc:java c++ python c#' In [36]: re.split(r':| ',str6)#split用来分割字符串,':|'的意思是只要看见冒号和空格就会分割成一部分 Out[36]: ['imooc', 'java c++ python c#'] In [37]: re.split(r':| ',str6) Out[37]: ['imooc', 'java', 'c++', 'python', 'c#']
Python字符串及正则表达式
字符串可以用单引号或双引号来创建
也可以用三引号来创建多行字符串
String_1 = '加快发展' String_2 = "促进生产" String_3 = """吾家吾国, 吾家吾国, 吾家吾国, 吾家吾国。"""
字符串匹配函数
re.match函数(起始位置匹配成功才算成功)
- re.match("匹配的正则表达式","要匹配的字符串","控制正则表达式的匹配方式").span()
- re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回 None。
re.search(扫描整个字符串并返回第一个成功的匹配)
re.search('要匹配的正则表达式','要匹配的字符串','标志位(同上)').span()
扫描整个字符串并返回第一个成功匹配,span会使结果为第一个成功匹配的位置索引
re.match 和 re.search的区别
re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None;而 re.search 匹配整个字符串,直到找到一个匹配。
re.sub(替换字符串中的匹配项)
re.sub(pattern, repl, string, count=0, flags=0)
- pattern: 正则表达式中模式字符串
- repl: 替换的字符串,也可为一个函数
- string: 要被查找替换的原始字符串
- count: 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配
recompile 函数
compile 函数用于编译正则表达式,生成一个正则表达对象,供 match() 和 search() 这两个函数使用。
re.compile(pattern[,flags])
- pattern:一个字符串形式的正则表达式
- flags:匹配模式,可选可不选
findall函数
findall("待匹配的字符串","指定字符串的起始位置","指定字符串的结束位置")
起始位置与结束位置可选可不选
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。