re模块 之分组

  1. >>> import re
  2. >>> re.findall("ab|c","sdfab|csdf")
  3. ['ab', 'c']
  4. >>> re.findall("ab|cd","sdfab|cdsdf")
  5. ['ab', 'cd']
  6. >>> re.findall ("abc+","abccccc")
  7. ['abccccc']
  8. >>> re.findall ("abc*","abccccc")
  9. ['abccccc']
  10. >>> re.findall("(abc)+","abcabcabcabc") # 分组
  11. ['abc']
  12. >>> re.findall ("(abc)*","abcabcabcabc")
  13. ['abc', '']
  14. >>> re.findall ("abc+","abcabcabcabcabc")
  15. ['abc', 'abc', 'abc', 'abc', 'abc']

search分组用法 (只返回一个对象)

  1. >>> re.search("(?P<name>\w+)","abcccc")
  2. <re.Match object; span=(0, 6), match='abcccc'>
  3. >>> re.search("(?P<name>\w+)","abcccc").group()
  4. 'abcccc'

根据组名称 提取内容

  1. >>> re.search("(?P<name>[a-z]+)\d+","john18musicxiaoming20movie").group("name")
  2. 'john'
  3. >>> re.search("(?P<name>[a-z]+)(?P<age>\d+)","john18musicxiaoming20movie").group("age")
  4. ''
  5. >>>

re模块的其他常用方法

  1. >>> re.match("\d+","44safs45asdf321saf789").group() # 只取一个对象,只能取开头的
  2. ''
  3. >>> re.split(" ","hello world") # 按空格为分界线取
  4. ['hello', 'world']
  5. >>> re.split("[ |]","hello world|aaa")
  6. ['hello', 'world', 'aaa']
  7. >>> re.split("[ab]","safdbds") # 按 a b 为分界线取
  8. ['s', 'fd', 'ds']

--替换

  1. >>> re.sub("\d+","A","a1sd4fg45h")
  2. 'aAsdAfgAh'
  3. >>> re.sub("\d","A","a1sd4fg45h")
  4. 'aAsdAfgAAh'
  5. >>> re.sub("\d+","A","a1sd4fg45h",2)
  6. 'aAsdAfg45h'
  1. >>> a = re.compile ("\d+") # 定义规则
  2. >>> a.findall("safsd12a45") # 直接调用 (可以调用多次)
  3. ['', '']
  1. >>> re.finditer ("\d+","asfa45saf56") # 将数字放到迭代器内存里
  2. <callable_iterator object at 0x00000220B1E50E80>

获取里面的内容

  1. >>> b = re.finditer ("\d+","asfa45saf56")
  2. >>> next(b)
  3. <re.Match object; span=(4, 6), match=''>
  4. >>> next(b)
  5. <re.Match object; span=(9, 11), match=''>

优先级

  1. >>> re.findall("www\.(baidu|123)\.com","www.baidu.com")
  2. ['baidu']
  3. >>> re.findall("www\.(?:baidu|123)\.com","www.baidu.com") # ‘ ?:’去掉优先级
  4. ['www.baidu.com']

python学习-54 正则表达式2的更多相关文章

  1. [Python学习笔记]正则表达式总结

    常用缩写字符及其含义表格查询 缩写字符分类 含义 \d 0-9的任意数字 \D 除0-9的数字以外的任何字符 \w 任何字母.数字或下划线字符(可以认为是匹配"单词"字符) \W ...

  2. Python学习 之 正则表达式

    1.简单的正则表达式 import re s=r'abc' re.findall(s,"aaaaaaaaaaaaaaa") #结果为[] re.findall(s,"ab ...

  3. Python学习笔记——正则表达式入门

    # 本文对正则知识不做详细解释,仅作入门级的正则知识目录. 正则表达式的强大早有耳闻,大一时参加一次选拔考试,题目就是用做个HTML解析器,正则的优势表现得淋漓尽致.题外话不多讲,直接上干货: 1. ...

  4. Python学习--16 正则表达式

    正则表达式是一种描述性的语言,用来匹配字符串.凡是符合规则的字符串,我们认为就是匹配了. 正则表达式并非Python独有的,它与语言无关.很多语言都支持正则表达式. 我们经常用正则表达式来匹配电子邮件 ...

  5. python学习日记(正则表达式)

    定义 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Pyth ...

  6. python学习笔记----正则表达式

    正则: regular expression 常用的场景: #正则的包 >>> import re #match:开头匹配,匹配到,返回一个匹配对象,否则返回None >> ...

  7. python学习笔记——正则表达式regex

    1 概述 1.1 定义 本质是由一系列字符和特殊符号组成的字串,用来表示一定规则的某一类字符串. 1.2 特点 正则表达式是一个独立的技术,其在多种编程语言中使用. 在python语言中的正则表达式模 ...

  8. Python学习 :正则表达式

    正则表达式 python 使用正则表达式(re)来进行匹配引擎搜索 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串” 关于正则表达式 ...

  9. python 学习总结----正则表达式

    正则表达式 应用场景 - 特定规律字符串的查找,切割,替换 - 邮箱格式:URl,IP地址等的校验 - 爬虫项目中,特定内容的提取 使用原则 - 只要使用字符串等函数能解决的问题,就不要使用正则 - ...

随机推荐

  1. 对okhttp参数的一些思考

    背景 项目中使用OkHttp访问三方服务 参数 创建okhttp客户端类的时候需要设置一些参数,有些可能是坑,仅供参考: client = new OkHttpClient.Builder() .di ...

  2. jQuery学习笔记——基本了解

    安装 两种方法: 从 jquery.com 下载jQuery. 从 CDN 中载入 jQuery, 如从我的博客中加载 jQuery: <script src="https://blo ...

  3. ubuntu之路——day5(今天看了浅层神经网络的数学推导过程)

    1.初始化 2.前向传播 导数比较好理解 3.反向传播 全符号积分的推导看得我头有点晕 最后唤起我依稀的线代回忆 感谢吴恩达老师的反向传播讲解,第一遍看的有点晕,然后仔细看了一下又找了个B站的推导就懂 ...

  4. useReducer代替Redux小案例-2(八)

    通过上节课的学习,用useContext实现了Redux状态共享的能力,这节课看一下如何使用useReducer来实现业务逻辑的控制.需要注意的是这节课的内容是接着上节课的,需要你把上节课的代码部分完 ...

  5. R获取指定GO term和KEGG pathway的gene list基因集

    clusterProfiler没有显性的接口,但是可以直接扣取clusterProfiler里的函数. 核心函数就是get_GO_data GO_DATA <- get_GO_data(&quo ...

  6. (转)RL — Policy Gradient Explained

    RL — Policy Gradient Explained 2019-05-02 21:12:57 This blog is copied from: https://medium.com/@jon ...

  7. Apollo的基本使用及常见问题

    1. 创建项目 在创建项目页面中填写相关项目信息,最后点击提交即可创建项目. 注意:应用Id必须唯一并且与客户配置的app.id一致. 2. 发布 进入对应项目可通过文本(批量)或者表格模式添加配置, ...

  8. 如何在shell脚本中获取当前用户名?

    答:使用环境变量USER即可 如在脚本中打印当前用户名; #!/bin/sh echo "user name = ${USER}"

  9. leetcode 611. Valid Triangle Number 、259. 3Sum Smaller(lintcode 918. 3Sum Smaller)

    这两个题几乎一样,只是说611. Valid Triangle Number满足大于条件,259. 3Sum Smaller满足小于条件,两者都是先排序,然后用双指针的方式. 611. Valid T ...

  10. Python 线程,with的作用(自动获取和释放锁Lock)

    Python 线程,with的作用(自动获取和释放锁Lock) import threading import time num= #全局变量多个线程可以读写,传递数据 mutex=threading ...