正则表达式(Regular Expression,简称Regex)是一种富强的文本处理东西,它容许开辟者经由过程特定的形式(pattern)来查抄、婚配跟操纵字符串。在Python中,re
模块为我们供给了正则表达式的功能,使得在Python中停止复杂的字符串操纵变得简单而高效。本文将介绍正则表达式的基本不雅点、Python中re
模块的利用,以及一些实用的正则表达式利用示例。
.
: 婚配除换行符以外的恣意字符。[ ]
: 婚配括号内的恣意一个字符,比方 [abc]
可能婚配 a
、b
或 c
。[^ ]
: 婚配不在括号内的恣意一个字符,比方 [^abc]
可能婚配除 a
、b
、c
以外的恣意字符。*
: 婚配前一个字符0次或多次。+
: 婚配前一个字符1次或多次。?
: 婚配前一个字符0次或1次。{n}
: 婚配前一个字符n次。{n,}
: 婚配前一个字符至少n次。{n,m}
: 婚配前一个字符至少n次,至多m次。^
: 婚配字符串的开端。$
: 婚配字符串的结束。b
: 婚配单词的界限。B
: 婚配非单词的界限。d
: 婚配恣意一个数字字符,等价于 [0-9]
。D
: 婚配恣意一个非数字字符,等价于 [^0-9]
。w
: 婚配恣意一个字母数字或下划线字符,等价于 [a-zA-Z0-9_]
。W
: 婚配恣意一个非字母数字或下划线字符,等价于 [^a-zA-Z0-9_]
。s
: 婚配恣意一个空白字符,包含空格、制表符、换页符等。S
: 婚配恣意一个非空白字符。import re
re.match(pattern, string)
: 实验从字符串的肇端地位婚配一个形式,假如婚配成功,前去一个婚配东西,不然前去 None
。re.search(pattern, string)
: 扫描全部字符串,前去第一个成功的婚配。re.findall(pattern, string)
: 在字符串中查找全部婚配项,前去一个列表。re.sub(pattern, replacement, string)
: 在字符串中调换全部婚配项,前去调换后的字符串。import re
# 婚配邮箱地点
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
string = 'myemail@example.com'
# 查找全部婚配项
matches = re.findall(pattern, string)
# 调换字符串中的婚配项
replaced_string = re.sub(pattern, '[email]', string)
print(matches) # 输出:['myemail@example.com']
print(replaced_string) # 输出:[email]
正则表达式是Python中处理文本的富强东西。经由过程控制正则表达式的基本不雅点跟利用方法,开辟者可能轻松应对各种文本处理困难。