前排提要:

本博客介绍在Python下使用正则表达式从给定的字符串中获取到想要的字符串。

1 导库

import re

2 使用模板

re_pattern = re.compile(pattern, flags=0)
result = re.findall(re_pattern,string)

3 说明

参数 描述
pattern 匹配的正则表达式,如 r'abc' 可用来匹配abc
flags

可选,标志位,控制匹配方式,可选值:

re.I    忽略大小写

re.L    表示特殊字符集\w \W \b \B \s \S,依赖于当前环境

re.M    多行模式

re.S    包括换行符在内的任意字符

re.U    根据Unicode字符集解析字符

re.X    为了增加可读性,忽略空格和#后面的注释

re.A    根据ASCII码解析字符

string 待匹配字符串
方法 描述
compile 编译正则表达式,生成一个正则表达式(Pattern)对象
findall 全文匹配,匹配结果以列表形式返回

4 示例

以下代码用来在字符串 str 中匹配符合如下规则的字符串:

中英文括号开头+1个大写字母+1个或无限个数字+0个或1个字符“.”+0个或1个字符“/”+0个或无限个数字+中英文括号结尾

# 导库
import re
# 待处理字符串
str = '小分裂细胞型(弥漫性)非霍奇金淋巴瘤(M96720/3)(Y97.1)(Y77)(yyy)'
# 设定匹配规则,编译
re_str = re.compile(r'[((][A-Z][0-9]+[.]?[/]?[0-9]*[))]', re.S)
# 匹配
ans = re.findall(re_str,str)
# 打印
print(ans)

在字符串 str 中的匹配结果如下,可见有三个字符串符合匹配规则:

5 正则表达式匹配规则

语法

描述

正则表达式示例

对应可匹配字符串示例

一般字符 匹配自身 abc abc
元字符
. 除了换行符之外的任意单个字符 a.c abc
* 匹配前面一个字符0或无限次 ab*

a

abbb

+ 匹配前面一个字符1次或无限次 ab+

ab

abbb

? 匹配前面一个字符0次或1次 ab?

a

ab

\ 转义符,使后面一个字符保持原来的意思 a\.b a.b
{m} m是一个非负整数,表示匹配前一个字符m次 abc{2} abcc
{m,n} m和n都是非负整数,且m≤n,表示最少匹配m次且最多匹配n次 ab{2,4}c abbc
| 逻辑或,匹配左右表达式中的任意一个。具有“短路”特点,先匹配左侧表达式,再匹配右侧表达式。建议用()括起来,否则会作用于整个正则表达式 abc|123

abc

123

() 括号,将表达式括起来作为一个分组。分组表达式是一个整体 a(bc)?d

ad

abcd

[] 字符集,里面的字符可以是任意数量个字符,也可以是一个范围。若第一个字符为^,则表示取反,如[^abc]表示除了abc以外的字符。大多数特殊字符(除了-、]、^,使用时仍需用 \ 转义)在[]内都失去其原有的特殊含义,如[.]仅表示匹配字符 . 而不是匹配任意字符

[abc]

[a-c]

a

b

c

定位符
^ 匹配字符串的开头字符 ^abc abc
$ 匹配字符串的结尾字符 abc$ abc
\b

匹配一个单词的边界

如\bab表示匹配字符串ab且ab前面要是空格

如ab\b表示匹配字符串ab且ab后面要是空格

\bab

可以匹配到abc中的ab

无法匹配到cab中的ab

\B 匹配非边界 \Bab

可以匹配到cab中的ab

无法匹配到abc中的ab

预定义字符集
\d 匹配数字,等价于[0-9] a\dc a1c
\D 匹配非数字,等价于[^\d] a\Dc abc
\s 匹配空白字符,包括空格、制表符、换页符等 a\sc a c
\S 匹配非空白字符,等价于[^\s] a\Sc abc
\w 匹配字母数字下划线,等价于[a-zA-Z0-9_] a\wc a_c
\W 匹配非字母数字下划线,等价于[^\w] a\Wc a c

Python中使用正则表达式以及正则表达式匹配规则相关推荐

  1. python中利用re模块正则表达式匹配ip地址

    python中利用正则表达式判断ipv4地址是否合法 ip地址的范围为0.0.0.0-255.255.255.255,分成四段,则每段的范围都是0-255,因此,以一段进行分析: 在进行书写匹配规则时 ...

  2. python基础系列教程——python中的字符串和正则表达式全解

    全栈工程师开发手册 (作者:栾鹏) python教程全解 转义字符 正则表达式是建立在字符串的基础上,当需要在字符中使用特殊字符时,python用反斜杠\转义字符.如下表: 转义字符 描述\(在行尾时 ...

  3. python中的re模块——正则表达式

    re模块:正则表达式 正则表达式:为匹配字符 import re #导入re模块 #re.findall('正则表达式','被匹配字符') re模块下findall用法 在正则表达式中: \w 表示匹 ...

  4. split在python中什么意思_python 正则表达式 split(python里split什么意思)

    split rom gui我想用正则表达式实现.谢谢. 问题说split(new char[] {'/t'}明: 例如:s = "01-1" 或 s = "01-01" 想截取"01-&qu ...

  5. python中else与if的匹配原则_匹配规则

    正则表达式的匹配规则是从左到右按规则匹配.我们首先来看如何使用正则表达式来做精确匹配. 对于正则表达式abc来说,它只能精确地匹配字符串"abc",不能匹配"ab&quo ...

  6. python中re模块及正则匹配

    Python中正则表达式 re:re是提供正则表达式匹配操作的模块 一.什么是正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某个模式匹配,Python 自1.5版本起 ...

  7. python中赋值语句的例子_python赋值语句规则

    python中while语句内能赋值吗(即其中有=) python不支持. 就像自增自减运算符一样,技术上可以实现此语法,但是为了贯彻python不可变类型的理念,所以不添加此运算符,python中w ...

  8. python中findall函数_Python正则表达式 findall函数详解

    在写正则表达式的时候总会遇到不少的问题, 特别是在表达式有多个元组的时候.下面看下re模块下的findall()函数和多个表达式元组相遇的时候会出现什么样的坑. 代码如下:import re str= ...

  9. python中else与if的匹配原则是什么_if-else语句中,if和else的配对原则各是什么

    展开全部 if-else语句中,if和else的配对原则都是在同一e68a8462616964757a686964616f31333431353363个复合语句括号"{}"作用域内 ...

  10. java正则匹配多个斜杠_正则表达式中两个反斜杠的匹配规则详解

    关于正则表达式raw的\匹配规则 这是我在学习中获得到的一个例子,第一表达式中匹配到的是none.于是乎我就在思考,为什么会匹配不到,假设\t被转义成一个\t,那么也应该匹配到\tsanle,而不是n ...

最新文章

  1. Python:urllib2模块Handler处理器 和 自定义Opener
  2. 深度学习理论与实战:基础篇电子书
  3. 张亚勤清华AIR战队首次亮相,这阵容不是一般强
  4. stack与queue
  5. jQuery——siblings()方法
  6. 央行降准,房价可能又要骚动了!
  7. web前后端 http转https
  8. PCI总线原理(二)
  9. php如何增加字段,php如何增加字段
  10. debian的甘特图工具
  11. php全部大写字母,在PHP中,使用()函数来将全部字母转换为大写
  12. Blocking Queue三种加入队列方法对比
  13. VMware ESXi 7.0 U3 SLIC 2.6 Unlocker 集成 Intel NUC 网卡、USB 网卡和 NVMe 驱动
  14. 工作簿中工作表内容批量提取
  15. 神舟战神笔记本重做系统
  16. 巾帼亮相申城,群英共筑梦想
  17. 青少年计算机编程少儿编程小学生编程是否适合
  18. shell中的Random随机数
  19. 惠普 HPE D380 G9 做raid1+0并安装ESXI6.7
  20. 小米一键解锁system分区_小米note3开启全面屏手势、禁用经典物理按键教程

热门文章

  1. IN指令和OUT指令
  2. 第3组 团队展示(组长)
  3. root密码破解方法
  4. MySQL数据库自带基准压力测试工具MySQLSlap使用探索
  5. 什么是ThreadLocal?ThreadLocal基本使用
  6. Kaggel Egg脑电图像癫痫预测——资料整理
  7. 聊聊我当年在培训学校做开发的经历
  8. DevExpress----破解补丁
  9. 用vue-pdf包实现pdf文件预览,支持分页
  10. Multi-level Feature Fusion Networks with Adaptive Channel Dimensionality Reduction for Remote Sens