博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python正则表达式-re模块的爱恨情仇
阅读量:5056 次
发布时间:2019-06-12

本文共 4105 字,大约阅读时间需要 13 分钟。

利用python的re模块,使用正则表达式对字符串进行处理

1 # 编辑者:闫龙  2 import re  3 restr = "abccgccc123def456ghi789jgkl186000"  4 #re中的方法:  5 res=re.findall("abc",restr)  6 #获得匹配到的字符,并转化为列表['abc']  7 res=re.finditer("abc",restr)  8 next(res).group()  9 #获得匹配到的字符,并转成一个迭代器
10 11 res = re.search("abc",restr) 12 res.group() 13 #获得匹配结果对象,<_sre.SRE_Match object; span=(0, 3), match='abc'> 14 #只匹配一个结果 15 #通过group方法从对象中拿到结果 16 #否则None 17 18 res = re.match("abc",restr) 19 res.group() 20 #获得匹配对象,<_sre.SRE_Match object; span=(0, 3), match='abc'> 21 #只匹配一个结果,而且匹配结果必须是开头 22 #通过group方法从对象中拿到结果 23 #否则None 24 25 res = re.split("\d+",restr) 26 #获得匹配结果作为列表 27 #按照匹配字符拆分列表['abccccc', 'def', 'ghi', 'jkl', ''] 28 res = re.split("\d+",restr,2) 29 #指定分割次数,只分两次 30 # ['abccccc', 'def', 'ghi789jkl186000'] 31 32 res = re.sub("g","egonSomeBody",restr) 33 #sub用来将匹配的结果替换为新的字符串 34 #abccegonSomeBodyccc123def456egonSomeBodyhi789jegonSomeBodykl186000 35 res = re.sub("g","egonSomeBody",restr,1) 36 #指定替换次数,只替换第一个匹配结果 37 #abccegonSomeBodyccc123def456ghi789jgkl186000 38 39 res = re.compile("\d+") 40 res.findall(restr) 41 #保存正则表达式,直接调用给字符串 42 #['123', '456', '789', '186000'] 43 print(res) 44 """--------------------------------------------------------------------------------------------""" 45 #正则元字符 46 restr = "abccccc123def456ghi789jkl186000" 47 # . 通配符代表除了\n换行符之外的所有字符 48 res = re.findall(".",restr) 49 #['a', 'b', 'c', 'c', 'c', 'c', 'c', '1', '2', '3', 'd', 'e', 'f', '4', '5', '6', 'g', 'h', 'i', '7', '8', '9', 'j', 'k', 'l', '1', '8', '6', '0', '0', '0'] 50 #任意字符匹配 51 52 #^以什么字符开头的字符串 53 res = re.findall("^abc.",restr) 54 #['abcc'] 以abc任意字符开头的匹配字符串 55 56 #$以什么字符结尾的字符串 57 res = re.findall("00$",restr) 58 #['00']以00结尾的匹配字符串 59 60 #+重复一个或多个字符 61 res = re.findall("c+",restr) 62 #['ccccc'] 重复c一个或多个匹配的字符串 63 64 #*重复0个或多个字符 65 res = re.findall("c*",restr) 66 #['', '', 'ccccc', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''] 67 #重复c,0个或多个匹配的字符串,所有""全部都是0个c的 68 69 #? 重复0个或1个字符 70 res = re.findall("c?",restr) 71 #['', '', 'c', 'c', 'c', 'c', 'c', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''] 72 #重复c,0个或1个匹配的字符串 73 74 #{}重复自定义次数 75 res = re.findall("c{2,3}",restr) 76 #['ccc', 'cc'] 匹配c,2个或者3个的字符串 77 78 #[]自定义出现的字符 79 restr = "abccccc123def456ghi666gai789jkl186000" 80 res = re.findall("g[ha]i",restr) 81 #['ghi', 'gai'] 匹配gh或ai的字符串 82 res = re.findall("[0-9]+",restr) 83 #['123', '456', '666', '789', '186000']匹配符合数字的字符串一个或多个 84 res = re.findall("[a-z]+",restr) 85 #['abccccc', 'def', 'ghi', 'gai', 'jkl']匹配符合字母的字符串一个或多个 86 87 #()分组字符串 88 res = re.findall("(ab)|(gh)",restr) 89 #[('ab', ''), ('', 'gh')]匹配(ab)或者(gh)的字符串 90 91 # | 或 92 res = re.findall("g|h",restr) 93 #['g', 'h', 'g']匹配g或者h的字符串 94 95 # \ 转义符,应用于将特殊符号转义,或将普通字符转义 96 #如\d就是全部数字,\.就是一个普通的点儿 97 #以上为元字符的介绍和使用方法 98 99 100 """---------------------------------------------------------------------------------------"""101 #\d 匹配十进制数字,等同于[0-9]102 res = re.findall("\d",restr)103 #['1', '2', '3', '4', '5', '6', '7', '8', '9', '1', '8', '6', '0', '0', '0']104 #所有匹配为十进制数字的字符串105 106 #\D匹配非数字,等同于[^0-9]107 restr = "abc1234"108 res = re.findall("\D",restr)109 #['a', 'b', 'c']匹配所有非数字字符110 111 #\s 匹配空白字符,相当于[\t\r\n\f\v]112 restr = "abc 1\t2\n34"113 res = re.findall("\s",restr)114 #[' ', '\t', '\n']匹配所有空格字符115 116 #\S 匹配非空白字符,相当于[^\t\r\n\f\v]117 restr = "abc 1\t2\n34"118 res = re.findall("\S",restr)119 #['a', 'b', 'c', '1', '2', '3', '4']匹配所有非空格字符120 121 #\w 匹配字母和数字,相当于[a-Z0-9]122 restr = "aZc-1(2;3.4"123 res = re.findall("\w",restr)124 #['a', 'Z', 'c', '1', '2', '3', '4']匹配所有字母和数字125 126 #\W匹配非字母和非数字,相当于[^a-Z0-9]127 restr = "aZc-1(2;3.4\n"128 res = re.findall("\W",restr)129 #['-', '(', ';', '.', '\n']匹配所有字母和数字130 131 #\b 匹配一个特殊字符边界,相当于 空格,&,# 等132 restr = "aZc-1 2& 3#4"133 res = re.findall("\\b3",restr)134 #['3']匹配3之前的边界135 136 #特殊知识点:\\ 双反斜杠转义137 restr = "hell\o"138 res = re.findall("l\\\\o",restr)139 #['l\\o'] 匹配l\o成功,这里要说明的是四个\是因为第一次是由python解释器翻译得到\\140 #第二步是由正则解释,\\为转义后的\

 

转载于:https://www.cnblogs.com/DragonFire/p/6789979.html

你可能感兴趣的文章
40个Android问题
查看>>
项目质量管理三角形
查看>>
获取32位随机码(uuid)的方法
查看>>
linux内核 同步
查看>>
wamp2.4.4 如何配置虚拟主机及反向代理(解决跨域问题)
查看>>
(官网)虚幻3--入门指南: 游戏性元素
查看>>
3.2-1937 Problem D
查看>>
jquery 选择器
查看>>
Oracle表恢复(truncate)
查看>>
【转】Java 内存模型及GC原理
查看>>
Django之模板
查看>>
Linux配置Spark
查看>>
页面有特别多的多级联动怎么处理和优化
查看>>
php的function() use($args)用法
查看>>
timestamp与timedelta,管理信息系统概念与基础
查看>>
grunt环境配置打包使用01
查看>>
像这样,要像这样的研究和钻研技术,我想我们会继续走的更好!
查看>>
二叉查找树 源码实现
查看>>
Linux定时执行任务
查看>>
sqlserver2000备份数据库
查看>>