正则表达式:

作用:正则表达式是用来查找字符串的。

之前:使用正则表达式首先要导入re模块(import re)

  • re.match -- 从字符串的第一个单词开始匹配字符串。如果匹配到则返回一个对象;如果匹配不到则返回None.
 >>> import re
>>> s = 'besttest is good! besttest best'
>>> print re.match(r'best',s)
<_sre.SRE_Match object at 0x0000000001F6C578>
>>> print re.match(r'est',s)
None

解析:

  1. match方法接收3个参数,第一个是匹配的规则,也就是正则表达式;第二个是被检查的字符串;第三个参数不是必填的,用于控制正则表达式的匹配方式。
  2. 在正则表达式的前面加一个'r',代表按字符原样来匹配;否则当表达式字符串中包含转义字符的话就会被转义。
  • re.search -- search的方法是从字符串的整个内容里面找,如果找到了就返回第一个,找不到就返回None.如果想列出找到的内容需要用.group()方法,即(re.search(r'is',s).group())
 >>> import re
>>> s = 'besttest is good! besttest best'
>>> print re.search(r'best',s)
<_sre.SRE_Match object at 0x0000000001F6C578> >>> print re.search(r'best',s).group()
best >>> print re.search(r'bet',s)
None
  • re.findall -- 是从字符串所有内容中找,找到就返回,直到找完.它的返回值是一个列表.
 >>> import re
>>> s = 'besttest is good! besttest best'
>>> print re.findall(r'best',s)
['best', 'best', 'best'] >>> print re.findall(r'bst',s)
[]
  • re.sub -- 用来替换字符串的.即:用正则表达式身后的字符串替换正则表达式的字符串,会返回一个新的整个字符串.如果匹配不到的话,直接返回原来的字符串.
 >>> import re
>>> s = 'besttest is good! besttest best'
>>> print re.sub(r'best','BEST',s)
BESTtest is good! BESTtest BEST
>>>
>>> s = 'besttest is good! besttest best'
>>> print re.sub(r'bst','BEST',s)
besttest is good! besttest best
  • 正则符号:
  1. * :匹配*前面的一个字符0-多次
  2. +:匹配+前面的一个字符1-多次
  3. ?:匹配?前面的一个字符0-1次
  4. {n}:匹配花括号前面的一个字符n次
  5. {n,m}:匹配花括号前面一个字符n-m次
  6. .:默认匹配除\n之外的任意一个字符
  7. \:转义符,如果想让特殊字符失去以前(1.2.3)的含义,那么就需要在它前面加上'\'
  8. |:匹配|左边或|右的字符
  9. []:字符集合,里面是某些字符的集合,匹配的时候是这个集合里面的任意一个就可以。如果[]里面含有^时,代表取反,也就是不包括这些字符串
  10. ^:代表匹配以什么字符串开头,多行的情况个下匹配每一行的开头
  11. $:匹配以什么字符结尾,多行情况下匹配每一行的结尾
  12. \A:仅仅代表以什么字符开头,和'^'不同的是它不能用多行模式
  13. \Z:仅仅代表以什么字符结尾,和'$'不同的是它不能用多行模式
  14. \d:匹配数字0-9
  15. \D:匹配非数字
  16. \w:匹配[A-Za-z0-9],也就是所有的字母和数字和中文
  17. \W:匹配不是[A-Za-z0-9],也就是不是字母和数字和中文
  18. \s:匹配空白字符,如\t、\n、\r、空格
  19. \S:匹配非空白字符,不是\t、\n、\r、空格
  20. [A-z]:大小写字母
  21. [a-z]:小写字母
  22. [A-Z]:大写字母
  23. [0-9]:所有的数字
  • 分组匹配
 >>> import re
>>> pattern = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
>>> print re.findall(pattern,"192.168.1.2")
['192.168.1.2']
>>>
>>> pattern_1 = r'\d{1,3}(?:\.\d{1,3}){3}'
>>> print re.findall(pattern_1,"192.168.1.2")
['192.168.1.2']

参考链接:http://www.cnblogs.com/houzhizhe/p/7065682.html

python正则表达式_总结的更多相关文章

  1. Python正则表达式Regular Expression基本用法

    资料来源:http://blog.csdn.net/whycadi/article/details/2011046   直接从网上资料转载过来,作为自己的参考.这个写的很清楚.先拿来看看. 1.正则表 ...

  2. [转] Python正则表达式指南

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...

  3. python 正则表达式汇总

    一. 正则表达式基础 1.1.概念介绍 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分. 其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同. 它拥 ...

  4. Python 正则表达式学习笔记

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...

  5. Python 正则表达式 (python网络爬虫)

    昨天 2018 年 01 月 31 日,农历腊月十五日.20:00 左右,152 年一遇的月全食.血月.蓝月将今晚呈现空中,虽然没有看到蓝月亮,血月.月全食也是勉强可以了,还是可以想像一下一瓶蓝月亮洗 ...

  6. python 正则表达式Re

    Python正则表达式指南这篇文章很好,推荐阅读. 本文则是简单记录下我自己学习Re的笔记, 环境是python3.5. 1.简单的Re语法 ^ 匹配字符串开始位置. $ 匹配字符串结束位置. \b ...

  7. Python正则表达式指南(转)

    目录 Python正则表达式指南(转) 0.防走丢 1. 正则表达式基础 1.1. 简单介绍 1.2. 数量词的贪婪模式与非贪婪模式 1.3. 反斜杠的困扰 1.4. 匹配模式 2. re模块 2.1 ...

  8. python 正则表达式规则收集

    python正则表达式基本元字符 .   通配符,匹配所有字符 ^abc  匹配以abc开始的字符串 abc$  匹配以abc结尾的字符串 [abc]  匹配字符集合 [A-Z0-9] 匹配字符范围 ...

  9. 7.Python 正则表达式学习笔记

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...

随机推荐

  1. Eclipse导入Maven项目出现:Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.2

    错误如下: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.2 or one of ...

  2. javascript实现 京东淘宝等商城的商品图片大图预览功能(图片放大器)

      在京东和淘宝等购买东西的时候,我们会经常预览左侧商品展示图片,把鼠标放到原图,右侧就会有个大图显示出细节.本文将带领大家写一个这样简单的功能! 一.实现原理 当鼠标移入某一图片内部时,图片上部会出 ...

  3. 使用Guava适配不同的callback

    Cache<Key,Value> cache =CacheBuilder.newBuilder() .maximumSize(1000) .build();// look Ma, no C ...

  4. Linux中断处理驱动程序编写

    本章节我们一起来探讨一下Linux中的中断 中断与定时器:中断的概念:指CPU在执行过程中,出现某些突发事件急待处理,CPU暂停执行当前程序,转去处理突发事件,处理完后CPU又返回原程序被中断的位置继 ...

  5. python绘图入门

    python绘图入门 学习了:https://zhuanlan.zhihu.com/p/34200452 API:https://matplotlib.org/api/pyplot_api.html ...

  6. centos 5.11修改ssh默认端口号

    查看下服务器端口号范围: # sysctl -a|grep ip_local_port_range    net.ipv4.ip_local_port_range = 32768    61000 新 ...

  7. SGU - 311 Ice-cream Tycoon(线段树)

    Description You've recently started an ice-cream business in a local school. During a day you have m ...

  8. 大型网站技术架构(四)--核心架构要素 开启mac上印象笔记的代码块 大型网站技术架构(三)--架构模式 JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)

    大型网站技术架构(四)--核心架构要素   作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载.此篇已收录至<大型网站技 ...

  9. AngularJS自己定义标签加入回调函数eval()

    function helloworld(name){ console.log("hello!!!!!"+name) } var name="zhangsan"; ...

  10. make eval builtin function

    1 eval的返回值是空字符串,因此它可以用于Makefile的任何位置而不引起错误 2 eval函数的作用效果 生成Makefile的动态部分,即eval用于增加Makefile的构成部分. 也就是 ...