正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
应用:搜索引擎的核心原理就是利用正则表达式匹配搜索结果;网页爬虫

‘r’:在以’r’为前缀的字符串字面值中,反斜杠不会以任何特殊的方式处理。所以r"\n"是一个包含’'和’n’两个字符的字符串,而"\n"是包含一个换行符的单字符字符串。

‘.‘ :字符在正则表达式代表着可以代表任何一个字符(包括它本身)

‘+’的作用将前面一个字符或一个子表达式重复一遍或者多遍。
‘. +’ : 将.号重复一遍或者多遍,‘.’号可表示任一字符,因此合起来是代表任意长字符串。

比方说表达式“ab+”那么它能匹配到“abbbbb”,但是不能匹配到"a",它要求你必须得有个b,多了不限,少了不行。你如果问我有没有那种“有没有都行,有多少都行的表达方式”,回答是有的。

‘*’:将前面一个字符或一个子表达式重复0次或多次
比方说我们在王叶内遇到了链接,可能既有http://开头的,又有https://开头的

import rekey = r"http://www.nsfbuhwe.com and https://www.auhfisna.com"#胡编乱造的网址,别在意
p1 = r"https*://"#看那个星号!
pattern1 = re.compile(p1)
print pattern1.findall(key)

[]:代表匹配里面的字符中的任意一个
[^]代表除了内部包含的字符以外都能匹配
“?”将贪婪的“+”改成懒惰的“+”,例如,

import rekey = r"chuxiuhong@hit.edu.cn"
p1 = r"@.+\."#我想匹配到@后面一直到“.”之间的,在这里是hit
pattern1 = re.compile(p1)
print pattern1.findall(key)

输出结果

['@hit.edu.']

呦呵!你咋能多了呢?我理想的结果是@hit.,你咋还给我加量了呢?这是因为正则表达式默认是“贪婪”的,我们之前讲过,“+”代表是字符重复一次或多次。但是我们没有细说这个多次到底是多少次。所以它会尽可能“贪婪”地多给我们匹配字符,在这个例子里也就是匹配到最后一个“.”。
我们怎么解决这种问题呢?只要在“+”后面加一个“?”就好了。

import rekey = r"chuxiuhong@hit.edu.cn"
p1 = r"@.+?\."#我想匹配到@后面一直到“.”之间的,在这里是hit
pattern1 = re.compile(p1)
print pattern1.findall(key)

输出结果

['@hit.']

加了一个“?”我们就将贪婪的“+”改成了懒惰的“+”。

{a,b}(代表a<=匹配次数<=b)

参考资料:https://baijiahao.baidu.com/s?id=1607549773736200730&wfr=spider&for=pc
https://www.cnblogs.com/MrFiona/p/5954084.html
通配符详解:https://www.cnblogs.com/chuxiuhong/p/5885073.html

python正则表达式模块re相关推荐

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

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

  2. python正则表达式模块

    正则表达式是对字符串的最简约的规则的表述.python也有专门的正则表达式模块re. 正则表达式函数 释义 re.match() 从头开始匹配,匹配失败返回None,匹配成功可通过group(0)返回 ...

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

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

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

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

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

    Python常用模块--正则表达式re模块 引子 请从以下文件里取出所有的手机号 姓名 地区 身高 体重 电话 况咏蜜 北京 171 48 13651054608 王心颜 上海 169 46 1381 ...

  6. python正则表达式模块_Python正则表达式函数模块

    今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍python中常用的正则表达式处理函数. 方法/属性 作用 match() 决定 R ...

  7. python判断邮箱格式是否正确_利用Python正则表达式模块,对邮箱帐号格式正确性校验(以QQ邮箱为例)...

    ''' 非纯数字邮箱(@qq.com,@foxmail.com)?? a.1 您的邮箱帐号应该由a-z的英文字母(不区分大小写)开头: a.2 可由英文字母.0-9的数字(但不能使用全数字).点.减号 ...

  8. python 结尾回车_理解不了Python正则表达式?我帮你搞定

    点击蓝字"python教程"关注我们哟! 在学习Python的过程中,我们难免会遇到比较晦涩.难以理解的内容,比如Python中的正则表达式.面向对象等内容,为了更好地帮助大家理解 ...

  9. python 正则表达式 sub_python 正则表达式 re.sub re.subn

    python正则表达式模块简介 Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 Emacs 风格的模式 ...

  10. Python正则表达式常用flag含义与用法详解

    封面图片:<Python程序设计实验指导书>(ISBN:9787302525790),董付国,清华大学出版社 图书详情(京东): ================== Python正则表达 ...

最新文章

  1. linux入门级知识回顾
  2. beta阶段140字评论
  3. 夺命雷公狗---linux NO:17 linux系统查找
  4. jquery 幻灯片图像切换效果
  5. Arraylist、HashSet去重复 treeSet排列实现方法 HashMap遍历取值
  6. jenkins简单部署
  7. 小米4系统定位服务器地址,小米4原装浏览器怎么开启定位系统
  8. POJ-3693 Maximum repetition substring 后缀数组
  9. spark学习:org.apache.spark.SparkException: A master URL must be set in your config
  10. JAVA:泛型通配符T,E,K,V区别,T以及Class,Class的区别
  11. mysql 模糊查询 s_MySql反向模糊查询
  12. C语言视频教程(初学C语言,还是看视频更直观)
  13. 强化学习7——梯度及梯度下降法
  14. sql分组排序, 分页查询
  15. node 生成随机头像_给微信设置卡通头像,再不怕撞脸!
  16. 【方法】树莓派开机使用教程(看这个就够了)
  17. [翻译] 在 Overleaf 中更改编辑器字体大小
  18. 并查集(详细解释+完整C语言代码)
  19. HTTP状态201(Created)
  20. 专利一通回案实审是什么

热门文章

  1. Canvas 实现小程序动画
  2. 小程序方法-小程序获取上一页的数据修改上一个页面的数据
  3. ACM-经典DP之Monkey and Banana——hdu1069
  4. Kylin 与 Spark SQL相比,有哪些差异和优势?
  5. 什么是多线程,锁,死锁,怎么避免死锁(转)
  6. 深入掌握JMS(五):实战Topic 1
  7. Java 文件读写示例1
  8. php经过twemproxy无法delete后端memcache值的解决方法
  9. 创建可扩展性系统-12
  10. java中通过正则表达式提取数字