1. 关于正则表达式

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。通俗一点地解释就是

正则表达式是可以匹配文本片段的模式。

最简单的正则表达式就是普通字符串,可以匹配自身。如:Python 就可以匹配自身。

详细资料参阅:正则表达式 - 百度百科

2. Python正则表达式

模块:re(regular expression)

学习正则表达式的关键

一次只学习一点:(在文档中)查找满足特定任务需要的那部分内容,预先将它们全部记住是没有必要的。

2.1 通配符

点(英文的.),它可以匹配任何字符(除了换行符),so 点号就称为通配符(wildcard)

例:正则表达式 '.ython' 就可以匹配字符串 'python'、'jython'、' ython'等,但是不能匹配'cpython'、'ython'这样的字符串。

2.2 特殊字符需转义

需要转义的字符有:* . ? + $ ^ [ ] ( ) { } | \ /

2.2.1 如何转义

需要在待转义的字符前加上反斜线,有两种方式:

① 使用原始字符串 —— r'abc\.com'

② 加双斜线 —— 'abc\\.com'

2.3 字符集

利用中括号括住字符串来创建字符集(character set)。

字符集可以匹配它所包括的任意字符,所以'[pj]ython' 能够匹配 'python'、'jython'。

还可以使用范围,比如:'[a-z]'能够(按字母顺序)匹配a到z的任意一个字符,'[A-Z]'能够(按字母顺序)匹配A到Z的任意一个字符,'[0-9]'能够(按数字顺序)匹配0到9的任意一个数字,组合起来'[a-zA-Z0-9]'能匹配任意大小写字母和数字(仅一个这样的字符)。

如果想匹配除此之外的字符,则在[]的开头加上^幂符号,如:'[^abc]'则表示可以匹配除a、b和c之外的任意字符。

2.4 选择符和子模式

2.4.1 选择符

| (管道符号,代表或的意思)

例如:'python|perl' 则能够匹配 'python'、'perl'

2.4.2 子模式

有些时候不需要对整个模式使用选择运算符,只是模式的一部分,这时可以使用小括号括起来需要的部分,或者子模式(subpattern)

例如:'python|perl' 即可以改写成 'p(ython|erl)',作用也是能够匹配 'python'、'perl'

2.5 可选项和重复子模式

2.5.1 可选项

?(在子模式后面加,它就变成了可选项)

可选项的含义:该子模式可能出现在匹配字符串中,但并非必需的。

例如:'p(ython)?',此正则表达式能够匹配 'python'、'p',因为后面的ython并非必需的,只有一个'p'也可以匹配。

2.5.2 重复子模式

有三个特殊运算符:*、+、{m,n}

*:表示允许子模式出现0次或多次,等价于{0,n}

+:表示允许子模式出现1次或多次,等价于{1,n}

{m,n}:表示允许子模式出现m次到n次

例如:r'w*\.python\.org' 则能匹配 '.python.org'、'w.python.org',甚至'wwwwww.python.org',类推其他两个,就不做介绍了

2.6 字符串的开始和结尾

^:放在正则表达式的开头

$:放在正则表达式的结尾

例如:r'^abc' 能匹配 'abc'、'abcdefg',不能匹配 'abdefg',必须要以 'abc' 为字符串的开头。类推结尾,'abc'$ 能匹配 'defgabc'、'abc',不能匹配 'abcdefg',必须要以 'abc' 为字符串的结尾。

那么 '^abc$' 则仅能匹配 'abc',除此无他。

3. re模块的内容

import re
re.split('[, ]+', 'Life is short, use Python')
# 将会输出 ['Life', 'is', 'short', 'use', 'Python']

常用函数:

  • re.compile
  • re.search
  • re.match
  • re.split
  • re.findall
  • re.sub
  • re.escape

PS:以上内容,后续补充,先熟悉Python正则表达式的知识

Congratulations

Python进阶之正则表达式基本内容已经介绍完了,更多进阶内容请继续关注,感兴趣记得订阅哦!!!

Python进阶之正则表达式相关推荐

  1. python进阶18正则表达式

    原创博客链接:python进阶18正则表达式 正则基础知识 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ^`:匹配行首 `$`:匹配结尾 `*`:( ...

  2. Python进阶-正则表达式

    Python进阶系列 Python进阶-网络编程-01 Python进阶-网络编程-02 Python进阶-网络编程-03 Python进阶-多任务编程-01 Python进阶-多任务编程-02 Py ...

  3. 《Python进阶系列》十六:详解Python中的正则表达式

    正则表达式 概述 正则表达式为高级的文本模式匹配.抽取.与/或文本形式的搜索和替换功能提供了基础.简单地说,正则表达式是一些由字符和特殊符号组成的字符串,它们描述了模式的重复或者表述多个字符,于是正则 ...

  4. Python自学路线图之Python进阶

    Python自学路线图的第二个阶段是Python进阶学习,自学完后需要掌握的Python技能: 1.自学Linux操作系统,熟练使用Linux操作系统: 自学网络编程,掌握网络编程相关技术, 能够实现 ...

  5. [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门

    [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门 1. 什么是正则表达式? 1.1 正则表达式概念 正则表达式,又称正则表示法,英文名:Regular Expression(简 ...

  6. 知识点 —— Python进阶-3

    Python进阶–3 单例模式 常用开发模式之一 用途 确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 A ...

  7. Python进阶--模块-re

    Python进阶–模块-re 1. 正则表达式 正则表达式,在字符串处理业务中经常会用到.这里对正则表达式的匹配规则不再赘述,我们仅介绍Python的re模块. 2. findall 2.1 方法解析 ...

  8. Python进阶之递归函数的用法及其示例

    作者 | 程序员adny 责编 | 徐威龙 封图| CSDN│下载于视觉中国 出品 |  AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...

  9. 如果只推荐一本 Python 进阶的书,我要 Pick 它!

    作者 | 豌豆花下猫 今年二月初,我偶然看到了一条推特: <流畅的Python>一书的作者发布了一条激动人心的消息:他正在写作第二版! 如果要票选最佳的 Python 进阶类书目,这本书肯 ...

最新文章

  1. HDU4009(最小树形图)
  2. python中numpy.ndarray与list的区别?以及用matplotlab.pyplot绘图时的注意事项。
  3. sgi---1 vector
  4. 脚手架工程:介绍安装
  5. android 广告栏效果,实现android广告栏效果
  6. Windows 7 添加SSD硬盘后重启卡住正在启动
  7. 一、NPP/VIIRS夜间灯光数据校正一理论介绍
  8. b站谈服务器崩溃后其他站点,B站服务器崩溃后,蒙古上单和陈睿一起上了热搜...
  9. centos下装redis
  10. python竖线_Matplotlib示例.43 横线与竖线
  11. 计算机网络——局域网
  12. Android 圆圈统计图(支付宝饼图)
  13. 优课在线 实境英语作业3Unit 11-15
  14. 挚爱家乡五常大米的味道
  15. 谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
  16. 服务器硬盘插拔原理拆解,如何正确拆除在 ServeRAID适配器控制着的热插拔硬盘...
  17. ui界面设计做什么:ui设计具体是什么
  18. 【SVN】新旧服务器更替,完成svn服务器迁移
  19. 融云通讯服务器,发送图片到自己的服务器
  20. 如何通过纯javascript实现表单提交

热门文章

  1. Linux重启网卡报错:Bringing up interface eth0:1......
  2. “2017小云社群APP年度评选”全民票选正式开启!
  3. python 停止工作 scapy_python – Scapy安装问题.没有什么似乎实际上被安装?
  4. 【教师招聘】教育综合高分必刷180题
  5. HTML5入门(JQuery基础运用一)
  6. HTML入门学习笔记+案例
  7. Luogu P1462 通往奥格瑞玛的道路(最短路+二分)
  8. 17届竞赛技术报告-越野组 | 山东大学(威海)-越野三队
  9. 触摸事件、手势识别、摇晃事件、耳机线控
  10. 双目视觉三维成像原理