1 原子
(1) 普通字符作为原子

 import repattern = "baidu"string = "www.baidu.com"result = re.search(pattern, string)print(result)

打印结果:

 <_sre.SRE_Match object; span=(4, 9), match='baidu'>

(2) 非打印字符作为原子

 import repattern = '\n'string = """www.baidu.com2017-12-16
"""result = re.search(pattern, string)print(result)

打印结果:

 <_sre.SRE_Match object; span=(13, 14), match='\n'>

(3) 通用字符作为原子表

 import repattern = "\w\dpython\w"string = "abc333python_py"result = re.search(pattern, string)print(result)

打印结果:

 <_sre.SRE_Match object; span=(4, 13), match='33python_'>

说明:

字符 解释
\w 匹配字母、数字及下划
\W 匹配非字母、数字及下划线
\s 匹配任意非打印字符,等价于 [\t\n\r\f]
\S 匹配任意非空字符
\d 匹配任意数字,等价于 [0-9]
\D 匹配任意非数字
\A 匹配字符串开始
\Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串
\z 匹配字符串结束
\G 匹配最后匹配完成的位置
\b 匹配一个单词边界,也就是指单词和空格间的位置
\B 匹配非单词边界。’er\B’ 能匹配 “verb” 中的 ‘er’,但不能匹配 “never” 中的 ‘er’
\n、\t等 匹配一个非打印字符
\1…\9 匹配第n个分组的内容
\10 匹配第n个分组的内容,如果它经匹配。否则指的是八进制字符码的表达式。

(4) 原子表

import re
string = "abc123pythonp_py"
pattern1 = "\w\dpython[a-z]\w"
pattern2 = "\w\dpython[^a-z]\w"
pattern3 = "\w\dpython[a-z]\W"
result1 = re.search(pattern1, string)
result2 = re.search(pattern2, string)
result3 = re.search(pattern3, string)
print(result1)
print(result2)
print(result3)

打印结果:

 <_sre.SRE_Match object; span=(4, 14), match='23pythonp_'>NoneNone

2 元字符
(1) 任意匹配元字符

import re
pattern = "...Python."
string = "ILove123Python_py"
print(re.search(pattern, string))

(2) 边界限定元字符

import re
"""匹配以ILove开始的字符串"""
pattern1 = "^ILove"
"""匹配以Love开始的字符串"""
pattern2 = "^Love"
"""匹配以py结束的字符串"""
pattern3 = "py$"
"""匹配以ny结束的字符串"""
pattern4 = "ny$"
string = "ILove123Python_py"
result1 = re.search(pattern1, string)
result2 = re.search(pattern2, string)
result3 = re.search(pattern3, string)
result4 = re.search(pattern4, string)
print(result1)
print(result2)
print(result3)
print(result4)

打印结果:

<_sre.SRE_Match object; span=(0, 5), match='ILove'>
None
<_sre.SRE_Match object; span=(15, 17), match='py'>
None

(3) 限定符

import re
string = "ILoveAndccccc123Python_py"
pattern1 = "Py.*n"
"""匹配从o后的两个v"""
pattern2 = "dc{2}"
"""匹配从o后的三个v"""
pattern3 = "dc{3}"
"""匹配从o后的最少两个v"""
pattern4 = "dc{2,}"
result1 = re.search(pattern1, string)
result2 = re.search(pattern2, string)
result3 = re.search(pattern3, string)
result4 = re.search(pattern4, string)
print(result1)
print(result2)
print(result3)
print(result4)

打印结果:

<_sre.SRE_Match object; span=(16, 22), match='Python'>
<_sre.SRE_Match object; span=(7, 10), match='dcc'>
<_sre.SRE_Match object; span=(7, 11), match='dccc'>
<_sre.SRE_Match object; span=(7, 13), match='dccccc'>

(4) 模式选择符

import re
string = "ILoveAndccccc123Python_py"
pattern = "Love|Python"
print(re.search(pattern, string))

打印结果:

<_sre.SRE_Match object; span=(1, 5), match='Love'>

(5) 模式单元符

import re
pattern1 = "(cd){1,}"
pattern2 = "cd{1,}"
string = "abcdcdcdePython_py"
result1 = re.search(pattern1, string)
result2 = re.search(pattern2, string)
print(result1)
print(result2)

打印结果:

<_sre.SRE_Match object; span=(2, 8), match='cdcdcd'>
<_sre.SRE_Match object; span=(2, 4), match='cd'>

3 模式修正

import re
pattern1 = "python"
pattern2 = "python"
string = "abcdcdcdePython_py"
result1 = re.search(pattern1, string)
result2 = re.search(pattern2, string, re.I)
print(result1)
print(result2)

打印结果:

None
<_sre.SRE_Match object; span=(9, 15), match='Python'>

4 贪婪模式和懒惰模式
1) 贪婪模式:尽可能多的匹配, 找到最后一个y为止
2) 懒惰模式:尽可能少的匹配,找到第一个y为止

import re
pattern1 = "P.*y"   #贪婪模式
pattern2 = "P.*?y"  #懒惰模式
string = "abcdcdcdePython_py"
result1 = re.search(pattern1, string)
result2 = re.search(pattern2, string)
print(result1)
print(result2)

打印结果:

<_sre.SRE_Match object; span=(9, 18), match='Python_py'>
<_sre.SRE_Match object; span=(9, 11), match='Py'>

Python入门(06) -- 正则表达式相关推荐

  1. python入门:正则表达式,面向对象编程,零基础视频教程分享

    正则表达式 import re #首先必须import re模块,re=Regular Expression,就是正则表达式的意思. pattern=re.compile(r'hello') #指明你 ...

  2. Python入门:正则表达式

    正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻 ...

  3. Python入门基础总结笔记——正则表达式

    Python入门基础总结笔记--正则表达式 完整基础知识参看网站:正则表达式 总结重点 用\d可以匹配一个数字,\w可以匹配一个字母或数字 用*表示任意个字符(包括0个),用+表示至少一个字符 用?表 ...

  4. python海龟作图好看图案_编程入门 06:Python 海龟绘图

    编程入门 06:Python 海龟绘图 现在让我们开始尝试图形用户界面 (GUI) 程序的编写 Python 标准库中有个 turtle 模块, 可以生成标准的应用程序窗口进行图形绘制 turtle ...

  5. Python入门(二十二)- 常见模块2(正则表达式及容器)

    二十二 常见模块2(正则表达式及容器) 22.1 正则表达式及re模块 正则表达式(Regular Expression)用于描述一种字符串匹配模式(Pattern),它可以用于检查一个字符串是否含有 ...

  6. python正则表达式入门_Python正则表达式教程之一:基础篇

    前言 之前有人提了一个需求,我一看此需求用正则表达式最合适不过.考虑到之前每次使用正则表达式,都是临时抱佛脚,于是这次我就一边完成任务一边系统的学习了一遍正则表达式.主要参考PyCon2016上的一个 ...

  7. 哪本python入门书内容最详细-重磅 | 由浅入深的 AI 学习路线,最详细的资源整理!...

    原标题:重磅 | 由浅入深的 AI 学习路线,最详细的资源整理! [导读] 本文由知名开源平台,AI技术平台以及领域专家: Datawhale, ApacheCN, AI有道和 黄海广博士联合整理贡献 ...

  8. (Python) 牛客 在线编程 python入门

    文章目录 前言 AC代码 01 输入输出 NP1 Hello World! NP2 多行输出 NP3 读入字符串 NP4 读入整数数字 NP5 格式化输出(一) NP6 牛牛的小数输出 02 类型转换 ...

  9. python零基础入门教程视频下载-零基础学Python入门教程,视频资源下载

    课程名称 零基础学Python入门教程,视频资源下载 课程目录 第一章 :Python介绍和安装 01.Python语言的特点 02.Python的发展历史与版本 03.Python的安装 第二章 : ...

  10. python速成要多久2019-8-28_2019最全Python入门学习路线,不是我吹,绝对是最全

    近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学 ...

最新文章

  1. 鸿蒙系统首批更新机器,鸿蒙系统升级名单
  2. python精确小数点_python执行精确的小数计算方法
  3. 学习笔记----周志华《机器学习》第五章(神经网络)(一)
  4. HTML+CSS+JS实现 ❤️美女拼图游戏❤️
  5. vnpy学习10_常见坑
  6. 20190911:(leetcode习题)计数质数
  7. java大转盘抽奖概率算法_大转盘抽奖概率算法
  8. 拼团不成功自动退款功能php实现,壹佰万能门店 1.0.89 小程序前端+后端 【优化】拼团订单不成团自动退款 微擎模块...
  9. 树莓派小实验 | 制作一个带快门的照相机 录像机
  10. 4D-Net for Learned Multi-Modal Alignment 论文笔记
  11. 自动垃圾分类管理系统 (项目论文,硬件,FPGA)
  12. 全国工程师薪资统计:平均 14 k,算法岗遥遥领先
  13. 满庭芳国色 高清剪图 桃红 下
  14. ubuntu18.04 network有线网络图标缺失解决记录
  15. Linux下磁盘挂载
  16. 【数据库】 如何对数据库进行操作
  17. 【scrapy实战】获取我的博客信息
  18. 更好的子表单数据填充方式
  19. 联发科天玑 1080 5G 芯片发布:CPU 性能略提升,支持 200MP 相机,4K HDR 视频录制
  20. unity3d模仿魔兽世界鼠标对游戏操作

热门文章

  1. linux添加开机自启动脚本
  2. C++函数指针和类成员函数指针
  3. 用 less 自制 bs 栅格布局
  4. jQuery——入门(二)动画
  5. 如何将CSS3 transforms应用于背景图像
  6. 有关正则表达式的一些用法总结
  7. Modularity(模块化-AMD规范)
  8. 7-181 帅到没朋友 (20 分)
  9. 2021考研c语言编程题,2021c语言编程例题及答案.docx
  10. 区块链基础学习(一)