re模块之转义字符

print(re.findall("I\b","I am a Man")) #匹配不到结果
print(re.findall(r"I\b","I am a Man")) #加字符串前加r的意思是对于特殊字符不作处理的交给re去处理
print(re.findall("I\\\k","I\k am a Man")) #k是没有特殊意义的, 而 \ 在re里是有特殊意义的,所以"I\k am a Man"中的\k其实是\\k
print(re.findall(r"I\\k","I\k am a Man")) #已知re里的 I\k字符 是 I\\k .加r对特殊字符不作处理的交给re去处理

re模块之 | (或)

print(re.findall("AB|CD","AAAAAABBBBBBBBBBCCCCCCCCDDDDDD")) #把符合AB和符合CD条件的拿出来,结果是:['AB', 'CD']
print(re.findall("(abc)+","abcabcabc")) #这个结果是:['abc'] ,如何解读?
print(re.findall("(abc)+","abcXabcXabc")) #这个结果是:['abc', 'abc', 'abc'] ,如何解读?

print(re.findall("www.(baidu|163)\.com","www.163.com")) #结果是 ['163'],有 |(或) 会匹配分组条件的内容
print(re.findall("www.(baidu|163)\.com","www.baidu.com")) #结果是 ['baidu']
print(re.findall("www.(?:baidu|163)\.com","www.baidu.com")) #结果是:['www.baidu.com']

re模块之search方法

search和findall的区别是:search是最小匹配,findall是贪婪匹配

print(re.search("ABC","123456ABC")) #结果返回是一个对象:<re.Match object; span=(6, 9), match='ABC'>
print(re.search("ABC","123456ABC").group()) #对象的group()方法的结果返回的是一个字符串:ABC
print(re.search("(?P<num>[0-9])[A-Z]+","123ABC456JJJ").group())# 结果是:3ABC
print(re.search("(?P<num>[0-9])[A-Z]+","123ABC456JJJ").group("num")) #结果是:3 ,符合预期

re模块之split方法 (分割)

print(re.split("[34]","A3B4CDE3FG4H3")) #结果是:['A', 'B', 'CDE', 'FG', 'H', ''],最后为什么是 空,因为3的前面已经算是被4分了,后面也没东西了,所以是 空
print(re.split("[34]","A34CDE3FG4H3")) #结果是:['A', '', 'CDE', 'FG', 'H', ''],第二个匹配结果为什么是 空,因为 3的后面是4,4也是分割条件一个,所以3后面没东西了,就空了,强行解释?

re模块之sub,subn方法 (相当于replace替换)

print(re.sub("\d","AK47","12345")) #结果是:AK47AK47AK47AK47AK47,,有5个ak47,意思就是每匹配到符合要求的单个字符,就会替换
print(re.sub("\d+","AK47","12www1")) #结果是:AK47wwwAK47,有2个AK47,因为12算符合\d+ 的第一个条件,所以算一个替换结果
print(re.sub("\d+","AK47","12www1",1)) #结果是:AK47www1 ,最后一个没去替换,应该我最后一个参数1,表示只替换一次符合要求的结果

print(re.subn("\d","AK47","12www321")) #结果是:元组('AK47AK47wwwAK47AK47AK47', 5),5的意思是符合条件的有5个

re模块之compile方法

no_num = re.compile("\D+")  # 先把规则编译到一个对象
result11 = no_num.sub("---","ABC123ABC")
print(result11)

re模块之finditer方法

iter_ret = re.finditer("\d","1234567812345678123456781234567812345678") #当处理的数据量很大的时候,就要用到迭代器,以免内存撑爆了
print(next(iter_ret).group())
print(next(iter_ret).group())
print(next(iter_ret).group())

转载于:https://www.cnblogs.com/iamjames/p/11261607.html

Python模块_re正则表达式模块-2相关推荐

  1. Python中re(正则表达式)模块函数学习

    2019独角兽企业重金招聘Python工程师标准>>> Python正则表达式指南 今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的 ...

  2. python正则表达式模块_Python正则表达式模块(re模块)

    Python是我接触到的第一门编程语言,虽然它足够简单,但是对于当时刚刚接触编程语言的我来说还是有些难度的,于是只是了解了一些Python的基本语法,稍微深入一点的地方都没怎么了解.不过,到现在为止, ...

  3. python如何打出英文括号_用python的re(正则表达式)模块匹配英文环境下的括号

    在用re(正则表达式)模块匹配掉文本中的括号时,总是出现各种各样的问题,经过将近一个小时的摸索,终于找到了问题的所在. 案例: 将 txt = 'Linux系统安装 - 1.1(Av20994127, ...

  4. Python中re(正则表达式)模块学习

    re.match re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词. import re text = "JGood is a handsome boy, he ...

  5. python正则表达式模块_Python正则表达式模块re

    正则表达式是一种通用的字符串匹配模式,使用灵活功能强大. Python正则表达式支持的语法可以参见这张表 Python的标准模块re提供了对正则表达式的支持,使用r'' 表示正则字符串可以避免转义字符 ...

  6. python中分割字符串两种方法正则分组别名,如何在python中使用正则表达式模块将文本字符串分割成单词?...

    Here's what I'm working with- string1 = "Dog,cat,mouse,bird. Human." def string_count(text ...

  7. python re模块 字符串匹配_re模块实现正则表达式之match()方法

    Python提供了re模块,用于实现正则表达式的操作.在实现时可以使用re模块提供的方法,(如search(),match(),findall()等)进行字符串处理也可以使用re模块compile() ...

  8. python正则表达式需要模块_使用Python正则表达式模块,让操作更加简单

    处理文本数据的一个主要任务就是创建许多以文本为基础的特性. 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码. 虽然想要实现上述功能听起来很繁琐,但是如 ...

  9. python中的正则表达式语法_Python基础教程之正则表达式基本语法以及re模块

    什么是正则: 正则表达式是可以匹配文本片段的模式. 正则表达式'Python'可以匹配'python' 正则是个很牛逼的东西,python中当然也不会缺少. 所以今天的Python就跟大家一起讨论一下 ...

最新文章

  1. 云计算重构渠道商的价值基础,推动渠道商向服务商转型
  2. Oracle之数据操作__分组统计查询
  3. STM32外部中断与各通道对应关系
  4. IOS开发-GitHub使用详解
  5. springboot controller调用service_绝了!Dataway让SpringBoot不在需要Controller、Service、DAO......
  6. Android各种各样的Drawable-更新中
  7. 给Angular初学者介绍一个非常方便的例子学习网站
  8. DFT 与 ATPG综 述
  9. Kubernetes API 与 Operator,不为人知的开发者战争
  10. 特斯拉中国公开统一维保价格
  11. Spring+springmvc+hibernate+redis整合配置文件
  12. spark数据倾斜解决之提高并行度
  13. html5微信分享图标和文本设置,科技常识:Html5 实现微信分享及自定义内容的流程...
  14. 单片机通过改变占空比改变电机转速c语言,直流电动机的调速 用单片机产生PWM控制...
  15. Java面向对象编程,绘制思维导图(全面详细整理)
  16. matlab中的求导函数diff
  17. 无需脑图 无需思维导图 看Word大纲视图
  18. Linux怎么恢复已删除的文件,Linux中使用extundelete恢复已删除的文件
  19. Python-F.softmax(dim)中dim使用理解
  20. ios 系统状态栏样式修改_IOS修改状态栏的字体颜色以及修改状态栏的背景颜色...

热门文章

  1. 荣耀10i高清渲染图曝光:后置三摄+高颜值渐变色机身
  2. 会玩!抖音上线拉春联特效 “拜个抖音年”活动参与人数超65万
  3. 千呼万唤始出来!诺基亚发预热海报:5摄手机真要来了
  4. 14款荣耀/华为机型获版本升级: 适配FlyPods Pro骨声纹识别
  5. qt glsl渲染rgb
  6. go语言:200行代码做udp rtp转发并发分布服务器
  7. 1 数列分块入门_LOJ#6277.数列分块入门1
  8. C++和Delphi工程0.5四舍五入问题的的排查
  9. [大学回忆录-思想]一种能力的培养
  10. 软件测试转行月薪过万,那些转行软件测试的新手小白,是如何从月薪5000到月薪2万的?...