Python中正则表达式(re模块)的使用

1、正则表达式的概述

(1)概述:正则表达式是一些由字符和特殊符号组成的字符串,他们描述了模式的重复或者表示多个字符,正则表达式能按照某种模式匹配一系列有相似特征的字符串。正则表达式是一种小型的、高度的专业化的编程语言,

(2)Python语言中的正则表达式内嵌在Python中通过re模块实现,正则表达式被编译成一系列的字节码,然后由C编写的匹配引擎执行

2、字符匹配

(1)符号匹配

符号

 

描述

 

示例

 

实例说明

 

literal

 

匹配文本字符串的字面值literal

 

root

 

匹配字符串root

 

re1|re2

 

匹配正则表达式re1或者re2

 

root|admin

 

匹配字符串root或者admin

 

.

 

匹配除换行外的任意字符

 

a.c

 

匹配ac中间有任意一个字符的选项

 

^

 

匹配字符串的起始部分

 

^root

 

匹配以root开头的结果

 

$

 

匹配字符串的结束部分

 

*sh$

 

匹配以sh结尾的内容

 

*

 

匹配0次或多次前面出现的内容的正则表达式

 

[a-z]*

 

匹配0次或多次出现小写字母

 

+

 

匹配1次或多次前面出现的内容的正则表达式

 

[A-Z]+

 

匹配大写字母至少出现一次

 

 

匹配0次或1次前面出现的正则表达式

 

goo?

 

匹配go或者goo

 

[…]

 

匹配来自字符集的任一单一字符

 

a[0-9]c

 

匹配ac中间出现一个数字

 

[..x-y..]

 

匹配x到y范围中的任一单一字符

 

[a-zA-Z]

 

匹配字母

 

[^…]

 

不匹配此字符集中出现的任何一个字符,包括某一范围字符

 

[^A-Za-z0-9]

 

匹配非字母、数字

 

{n}

 

匹配n次前面出现的正则表达式

 

[0-9]{3}

 

匹配三个数字

 

{n,m}

 

匹配n到m此前面出现的正则表表达式

 

[0-9]{5,7}

 

匹配数字出现5到7次

 

(…)

 

匹配封闭的正则表达式,然后另存为子组

 

([0-9]{3}\.)

 

匹配三个数字+.存为一个组

 

(2)特殊字符的匹配

符号

 

描述

 

示例

 

\d

 

匹配任何十进制数字,与[0-9]一致

 

data\d+.txt

 

\D

 

匹配任何非数字

 

a\D?\.log

 

\w

 

匹配任何字母数字字符(\W与之相反)

 

[A-Za-z]\w+

 

\s

 

匹配任何空格字符,与[\n\t\r\v\f]相同,\S功能相反

 

of\sthe

 

\b

 

匹配任何单词边界(\B功能相反)

 

\bthe\b

 

\N

 

匹配以保存的子组N

 

price:\16

 

\A(\Z)

 

匹配字符串的起始(结束)

 

\ADear

 

3、Python正则表达式的使用(即re模块的使用)

函数/方法

 

作用

 

compile(pattern,flags=0)

 

使用任何可选的标记来编译正则表达式的模式,然后返回一个正则表达式对象

 

re模块函数和正则表达式对象的方法

 

match(pattern,string,flags=0)

 

尝试使用带有可选的标记的正则表达式的模式来匹配字符串,如果匹配成功就返回匹配对象;失败,返回none

 

search(pattern,string,flags=0)

 

使用可选标记搜索字符串中第一次出现正则表达式的模式,如果匹配成功则返回匹配对象,失败,返回none

 

findall(pattern,string[,flags])

 

查找字符串中所有(非重复)出现的正则表达式模式,如果匹配成功,则返回匹配对象,如果失败,返回none

 

finditer(patter,string[,flags])

 

与findall函数相同,但返回的不是一个列表,而是一个迭代器,对于每一次匹配,迭代器都返回一个匹配对象

 

split(pattern,string,max=0)

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a8c545851c5d78c36f9a94fd2e5f28ba.html