正则表达式二 :re.findall()和元字符
2016-03-01 18:03
681 查看
>>> import re >>> re.search('nibi','wo niubi') >>> re.search('niubi','wo niubi') <_sre.SRE_Match object; span=(3, 8), match='niubi'> >>> >>> #用或语句 >>> re.search(r"fish(c|d)","fishcddd") <_sre.SRE_Match object; span=(0, 5), match='fishc'> >>> >>> #用脱字符^来确认是否在字符串的开始位置 >>> re.rearch(r"^fish","wowo fish") Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> re.rearch(r"^fish","wowo fish") AttributeError: module 're' has no attribute 'rearch' >>> re.search(r"^fish","wowo fish") >>> re.search(r"^fish","fish wowoowowo") <_sre.SRE_Match object; span=(0, 4), match='fish'> >>> >>> # $匹配字符串的结束位置 >>> re.search(r"^$fish","wowo fish") >>> re.search(r"$fish","wowo fish") >>> re.search(r"fish$","wowo fish") <_sre.SRE_Match object; span=(5, 9), match='fish'> >>> #$符号放在末尾 >>> >>> >>> # ()组的使用 >>> re.search(r"(fish)\1","wowo fish") >>> (fish)\1==fishfish SyntaxError: unexpected character after line continuation character >>> #(fish)\1==fishfish >>> re.search(r"(fish)\1","wowo fishfish") <_sre.SRE_Match object; span=(5, 13), match='fishfish'> >>> >>> # []字符类的使用 >>> re.search(r"[.]","fish.com") <_sre.SRE_Match object; span=(4, 5), match='.'> >>> #字符类中所以符号均当成普通字符,除了"-" >>> re.findall(r"[a-z]","fish.com") ['f', 'i', 's', 'h', 'c', 'o', 'm'] >>> #findall 是找到所有符合的字符,最后打包成列表返回。 >>> >>> #第二个是\,在[]也特殊 >>> re.findall(r"[\n]","dndfsdf \n") ['\n'] >>> >>> # ^脱字符的使用,除了其后内容其他均匹配 >>> re.findall(r"[a-z]","find oooo 222, \n") ['f', 'i', 'n', 'd', 'o', 'o', 'o', 'o'] >>> re.findall(r"^[a-z]","find oooo 222, \n") ['f'] >>> re.findall(r"[^a-z]","find oooo 222, \n") [' ', ' ', '2', '2', '2', ',', ' ', '\n'] >>> #注意脱字符的位置 >>> >>> #{}匹配次数 >>> re.search(r"fis{3}h"{3},"fisssh")\ SyntaxError: invalid syntax >>> re.search(r"fis{3}h","fisssh") <_sre.SRE_Match object; span=(0, 6), match='fisssh'> >>> re.search(r"(fish{3})","fishfishfish iiiiii") >>> re.search(r"(fish){3}","fishfishfish iiiiii") <_sre.SRE_Match object; span=(0, 12), match='fishfishfish'> >>> >>> re.search(r"(fish){3,66}","fishfishfish iiiiii") <_sre.SRE_Match object; span=(0, 12), match='fishfishfish'> >>> >>> >>> # *=={0,} ,+=={1,} , ?=={0,1} >>> #问号用来写ip地址就是天作之和 >>> >>> >>> #正则表达式默认选用贪婪模式 >>> s=r"<html><title>i love you</title></html>" >>> re.search(r"<.+>",s) <_sre.SRE_Match object; span=(0, 38), match='<html><title>i love you</title></html>'> >>> #加号+表示重复前面任何内容,遇到>停下来 >>> >>> #启用非贪婪模式 >>> re.search(r"<.+>?",s) <_sre.SRE_Match object; span=(0, 38), match='<html><title>i love you</title></html>'> >>> re.search(r"<.+?>",s) <_sre.SRE_Match object; span=(0, 6), match='<html>'> >>> #上面的?是取消贪婪模式 >>> >>> re.findall(r"\bfishc\b","fish.com!fishc.com!(fishc)") ['fishc', 'fishc'] >>> #匹配单词边界\b >>> >>> #非常重要的是把元字符表给搞下来经常看看 >>> >>> re.findall(r"\w","我爱你 love_you") ['我', '爱', '你', 'l', 'o', 'v', 'e', '_', 'y', 'o', 'u'] >>> #\w是Unicode字符 >>> >>> #编译正则表达式 >>> >>> p=re.compile(r"[A-Z]") >>> type(p) <class '_sre.SRE_Pattern'> >>> p.search("I LOVE you") <_sre.SRE_Match object; span=(0, 1), match='I'> >>> p.findall("I LOVE you") ['I', 'L', 'O', 'V', 'E'] >>> #这样利于方便 >>> >>> >>> re.search(r"(\w+)(\w+)","I love you") <_sre.SRE_Match object; span=(2, 6), match='love'> >>> result=re.search(r"(\w+)(\w+)","I love you") >>> result.group() 'love' >>> result.group(1) 'lov' >>> result.group(2) 'e' >>> result.start() 2 >>> result.end() 6 >>> result.span() (2, 6) >>>
相关文章推荐
- TFS
- python_socket编程
- 《从零开始学Swift》学习笔记(Day 25)——类和结构体定义
- Appium小试
- [linux]查看mysql的配置文件及查看mysql端口
- Java中String转换Double类型 Java小数点后留两位
- make clean、make mrproer、make distclean
- 记录yii resetful 自定义action是,设置它的请求方式
- eclipse里的Ctrl操作很慢
- 回眸总结linux的启动过程
- 我的第一个GitHub开源练习项目-OuNews新闻阅读软件(求Star求Fork_(:з」∠)_)
- 浅谈ClickableSpan , 实现TextView文本某一部分文字的点击响应
- 忘记密码 重置密码实现总结
- nginx( 设置)
- Gradle Tips#1-tasks
- javascript:Bing Maps AJAX Control, Version 7.0
- 树莓派3代发布支持蓝牙WiFi:售35美元
- 规范返回json格式
- 哎,,前途一片黑暗。。。。。。
- 【ZOJ3921 2016年浙大2月月赛I】【物理题 底乘高积分式思维】In the Rain 圆柱体人行走 吸收雨体积