目录:

1.re-概述 https://mp.csdn.net/postedit/85156839
2.re-函数 https://mp.csdn.net/postedit/85156993
3.re-Pattern   https://mp.csdn.net/postedit/85157041
4.re-match https://mp.csdn.net/postedit/85157072
5.re-分组 https://mp.csdn.net/postedit/85157147
6.re-扩展符号 https://mp.csdn.net/postedit/85157297
7.re- 预定义字符 https://mp.csdn.net/postedit/85157352
8.re-修饰符 https://mp.csdn.net/postedit/85157464
9.re-实例 https://mp.csdn.net/postedit/85157513

预定义字符:

NO

类别

模式

描述

实例

匹配字符串

1

分界符

[…]

匹配任意1个字符;逐个列出或给出范围;可以用\w\S等

rub[ye]

匹配 "ruby" 或 "rube"

特殊字符用作原字符;]和-应该放字符集开头或加\;注1

[xyz]No或[a-c]No

匹配xNo,yNo,zNo  ;[a-zA-Z0-9_]

2

功能字符

[^...] 反义

首字符^表示不在[]中的字符;      [a^b] 匹配字符 ’a^b’

[^abc]

匹配除abc 之外字符

3

功能字符

[...]|[...]

匹配前或后的全部;限定范围用无捕获组 ‘(?: )

dog|cat

匹配dog或cat; r’I have a (?:dog|cat)’

预定义字符

可写在字符集中[...]

1

预定义字符

\d

1位数字;             等价[0-9]

a\dc

a1c

2

预定义字符

\D 反义

1位非数字          等价[^\d]

a\Dc

abc

3

预定义字符

\w

字母数字下划线或汉字         等价[a-zA-Z0-9_]

a\wc

abc

4

预定义字符

\W 反义

非单词字符即特殊字符         等价[^a-zA-Z0-9_]

a\Wc

a c

数量词

(用在字符或(…)之后)

1

.

匹配任意除换行符外1个字符

a.c;.*

abc;任意数量字符不含换行符

2

重复限定符

re * 等价{0,}

匹配前1个字符或表达式0-无限次                          注3

abc*

ab,abccc

3

重复限定符

re+等价{1,}

匹配前1个字符或表达式1-无限次

abc+

abc,abccc

4

重复限定符

re? 等价{0,1}

匹配前1个字符或片段0-1次;在* +? {m,n}后表示非贪婪

abc? ; a+?

ab,abc ;*? +? ?? {m,n}?

5

重复限定符

re{m}

精确匹配前1个字符m次

o{2}

bob不匹配;fooood匹配[oo oo]

6

重复限定符

re{ m,}

匹配m个前面表达式                                  贪婪方式

o{2,}

bob不匹配;fooood匹配[oooo]

7

重复限定符

re{m,n}

匹配前个字符m-n次;(省略m匹配0-n次)贪婪方式

o{1,3}

bob fooood'匹配['o', 'ooo', 'o']

边界匹配

1

功能字符

^

匹配字符串或多行开头

^abc

abc

2

预定义字符

\A

仅匹配全部字符串开头;包括MULTILINE模式

\Aabc

abc

3

功能字符

$

匹配字符串末尾或后跟换行符的任何位置

abc$

abc

4

预定义字符

\Z

仅匹配str结束,不匹配其他行

abc\Z

abc

5

预定义字符

\b  0长度

匹配单词边界;匹配完str不含分界字符;

\bhi\b

精确地查找hi这个单词

6

预定义字符

\B  0长度

匹配非边界

a\Bbc

abc

7

预定义字符

\s

匹配空白字符[空格\t\r\n\f\v];单词边界;匹配含分界字符

a\sc

a c

8

预定义字符

\S  反义

非空白字符[^\s]

a\Sc

abc

1

无命名组

(exp)

匹配括号内的表达式;并捕获文本到自动命名的组里

a(1,2,3|4,5,6)c

a456c “ |”仅在该组中有效

2

扩展符号

(?P<name>exp)

匹配exp,并捕获文本到name组里

(?p<id>abc){2}

abcabc;也可以写成(?'name'exp)

3

\n

匹配第n个分组的内容。

(\d)abc\1

1abc1,5abc5

4

引用

(?P=name)

引用分组name匹配到的字符串(不作为分组)

(?P<id>\d)abc(?P=id)

1abc1,5abc5

5

m.group('')

当处理匹配对象m时;

m.group('quote')

返回指定组内容

6

参数

\g<...>或\1

用作参数;如传递给repl 参数的字符串中re.sub()

\g<quote>或\g<1>或\1

7

(p)* ;+;{m,n}

(pattern)*允许模式重复0次或多次

扩展符号

1

(?...)

(…)的不分组版本,用于使用‘|’或后接数量词

(?:abc){2}

abcabc

2

扩展符号

(? :exp)

匹配exp,不捕获匹配文本;不分配组号

注2

3

条件匹配

(?(... )a|b)

(?(n /name )yes-pattern|no-pattern)                注5

(\d)abc(?(1)\d|abc)

1abc2,abcabc

4

扩展符号

(?iLmsux:re)

在括号中使用i, m,  x 可选标志                           注4

(?i)abc

ABC

5

扩展符号

(?-imx:...)

括号中不用i, m, x,s 可选标志只影响括号中的区域

(?aiLmsux-imsx:...)

6

前向界定

(?<=常量) 0长度

之前str需匹配表达式(结果str除外)

(?<=\bis)\w+\b,isad1

匹配is开头的后半部分(除is部分)ad1

7

后向界定

(?=exp)     0长度

之后str需匹配表达式(结果str除外)

\b\w+(?=ing\b),ssing

匹配ing结尾前面部分(除ing部分)ss

8

前向非界定

(?<!...)       0长度

位置的前面不能匹配表达式exp

(?<![a-z])\d{7}

匹配前面不是小写字母的七位数字

9

后向非界定

(?!...)          0长度

位置的后面不能匹配表达式exp

\d{3}(?!\d)

匹配三位数字,三位数字后不是数字

10

(?#...)

#后内容注释

abc(?#comment)123

abc123

注1:要匹配']'集合中的文字,请在其前面加上反斜杠,或将其放在集合的开头。例如,无论是[()[\]{}]和 []()[{}]都将匹配一个括号

注2:但在执行匹配或稍后在模式中引用后,无法检索组匹配的子字符串 。

注3:重复限定符*+?{m,n}不能直接嵌套。应用第二次重复可用括号。例如,表达式(?:a{6})*匹配六个'a'字符的任意倍数。

注4:iLmsux的每个字符代表一个匹配模式,只影响括号中的区域

注5:如果编号为id/别名为name的组匹配到字符,则需要匹配yes-pattern,否则需要匹配no-pattern;|no-pattern可以省略

注6:子模式后面加上问号,它就变成了可选项r"(http://)?(www\.)?python\.org"

实例-基本规则:

# 实例1:.
re.findall(r'.+','12\n45\n78')          # ['12', '45', '78']
re.findall(r'.+' , '12\n45\n78' , re.S) # ['12\n45\n78']# 实例2:^$
s= '12 34\n56 78\n90'
re.findall( r'^\d+' , s , re.M ) # 匹配位于行首的数字     # ['12', '56', '90']
re.findall( r'\A\d+', s , re.M ) # 匹配位于字符串开头的数字# ['12']
re.findall( r'\d+$' , s , re.M ) # 匹配位于行尾的数字     # ['34', '78', '90']
re.findall( r'\d+\Z' , s , re.M )# 匹配位于字符串尾的数字 # ['90']# 实例3:\b\s
s = 'abc abcde bc bc'
re.findall( r'\bbc\b' , s )# 完全匹配单词 'bc' #['bc', 'bc']
re.findall( r'\sbc\s' , s )# 完全匹配单词 'bc' #[' bc '] 无空格不匹配# '\B' 匹配非边界
re.findall( r'\Bbc\W+' , s )#匹配包含 'bc' 但不以 'bc' 为开头的单词 # ['bc ']# 实例4:(?:)无捕获组
# 将一部分规则作为一个整体对它进行某些操作,比如指定其重复次数时s='ababab abbabb aabaab'
re.findall( r'\b(?:ab)+\b' , s )#匹配字符串中重复的 'ab' # ['ababab']
re.findall( r'\b(ab)+\b' , s )  #成为了一个组           # ['ab'] 

实例-重复:

# 重复规则形式在一条字符规则后面紧跟一个表示重复次数的规则# 实例1:*+匹配前是字母,后是数字或没有
s = ' aaa bbb111 cc22cc 33dd '
re.findall(r'\b[a-z]+\d*\b', s) # 单词边界   #['aaa', 'bbb111']
re.findall(r'[a-z]+\d*', s)     # 单词给拆开 # ['aaa', 'bbb111', 'cc22', 'cc', 'dd']    # 实例2:?匹配一个数字
s = ' 123 10e3 20e4e4 30ee5 '
re.findall( r' \b\d+[eE]?\d*\b' , s )# ['123', '10e3']# 实例3:精确匹配{m}和最小匹配{m,}匹配范围{m,n}
s= '1 22 333 4444 55555 666666 '
re.findall( r'\b\d{3}\b', s )        #精确匹配 m 次 #['333']
re.findall( r'\b\d{3,}\b', s )       #['333', '4444', '55555', '666666']
re.findall( r'\b\d{,3}\b', s )       #['1', '', '22', '', '333', '', '', '', '', '', '', '']
re.findall( r'\b\d{0,3}\b', s ) #['1', '', '22', '', '333', '', '', '', '', '', '', '']
re.findall( r'\b\d{1,6}\b', s ) #['1', '22', '333', '4444', '55555', '666666']   

python 66:re正则表达式7(全- tcy)相关推荐

  1. 05、Python爬虫之正则表达式常用方法(超全)

    文章目录 前言 一.search()函数 二.match()函数 三.compile()函数 四.findall()函数 五.sub()函数 六.subn()函数 七.split()函数 八.补充说明 ...

  2. python | 一篇文章正则表达式全学会

    目录 正则表达式的作用 re模块基本用法 1.match与search: 查找第一个匹配 re模块基本用法-raw re模块基本用法-match对象 re模块基本用法-findall 正则替换 re模 ...

  3. [Python]网络爬虫(七):Python中的正则表达式教程(转)

    接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...

  4. [Python]网络爬虫(七):Python中的正则表达式教程

    接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...

  5. 【Python笔记】正则表达式

    正则表达式 行定位符 元字符 限定符 字符类 排除字符 选择字符 转义字符 分组 在 Python 中使用正则表达式语法 行定位符 行定位符就是用来描述子串的边界. "^" 表示行 ...

  6. python必备基础代码-新手上路必学的Python函数基础知识,全在这里了(多段代码举例)...

    原标题:新手上路必学的Python函数基础知识,全在这里了(多段代码举例) 导读:函数是Python中最重要.最基础的代码组织和代码复用方式.根据经验,如果你需要多次重复相同或类似的代码,就非常值得写 ...

  7. Python 字符串及正则表达式

    字符串是所有编程语言在项目开发过程中涉及最多的一个内容.大部分项目的运行结果,都需要以文本的形式展示给客户,比如财务系统的总账报表,电子游戏的比赛结果,火车站的列车时刻表等. 5.1 字符串常用操作 ...

  8. python中的format什么意思中文-Python中format()格式输出全解

    格式化输出:format() format():把传统的%替换为{}来实现格式化输出 1.使用位置参数:就是在字符串中把需要输出的变量值用{}来代替,然后用format()来修改使之成为想要的字符串, ...

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

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

  10. Python字符串和正则表达式中的反斜杠(‘\‘)问题

    在Python普通字符串中 在Python中,我们用''来转义某些普通字符,使其成为特殊字符,比如 In [1]: print('abc\ndef') # '\n'具有换行的作用 abc defgIn ...

最新文章

  1. Xamarin XAML语言教程Xamarin.Forms中构建进度条
  2. POJ-3241 Object Clustering 曼哈顿最小生成树
  3. 数据中心网络架构和设计指南
  4. IIR+全通滤波器级联实现系统零相位相移_matlab仿真
  5. 重启计算机设的桌面背景就没了,桌面壁纸无法保存怎么办?Win7系统重启后不保存桌面背景解决方法...
  6. mysql合并表快速去重_MySQL数据表合并去重的简单实现方法
  7. 基于python爬虫技术的应用_基于Python爬虫技术的应用
  8. Where do SAP CRM HANA Live Querys come from
  9. matlab求零空间,matlab求矩阵的零空间的一组整数基,该怎样操作?
  10. 详解Class类文件的结构(上)
  11. 删除高频分量matlab,关于FFT之后怎么提出该频率分量
  12. 西安交大计算机技术考研初复试,西安交大计算机考研初试、复试信息
  13. Netty源码解析1-Buffer 1
  14. [RHEL5企业级Linux服务攻略]--第11季 NIS服务全攻略
  15. java scjp考试_Java开发网 - 【经验】今天以96通过SCJP考试(含考试经验和部分真题)[转帖]...
  16. 烟雾传感器应用程序linux,各种类型烟雾传感器的应用及原理解析
  17. 第十三届“认证杯”数学中国数学建模比赛赛后体会
  18. Metasploit -- 各类密码破解
  19. Android O 自定义prop的问题小总结
  20. 当图片被压缩时,图片变得模糊

热门文章

  1. Centos 7防火墙开放端口方法
  2. DNA 13. SCI 文章肿瘤突变负荷计算方法(TMB)
  3. python实现将原图裁剪为固定尺寸小图
  4. [git].gitignore使用及模板
  5. Mogrt标题模板 温馨花朵爱心动态母亲节标题PR模板下载
  6. 益生元有什么作用?益生菌和益生元有什么关系?
  7. 2020-2023年周末、法定节假日、工作日标签
  8. 国内办公家具厂家做不大的3点原因
  9. 用python写管理系统局域网_详解用python -m http.server搭一个简易的本地局域网
  10. Spark序列化简介