Python的正则表达式总结

1. 正则表达式基础

正则表达式(Regular Expression)是一种用于匹配字符串(string)中“模式”的表达式。Python 中使用 re 库进行正则表达式操作。

1.1 匹配单个字符

匹配单个字符可以使用 .(点号)来表示。例如,查找以 a 结尾的单词,可以使用如下代码:

import re

text = 'hello world and apple'

pattern = r'\w+a\b'

result = re.findall(pattern, text)

print(result) # ['pa', 'le']

其中,\w 表示匹配任意单个字符(包括字母、数字、下划线),+ 表示匹配前面的字符一次或多次,\b 表示匹配单词边界。

1.2 匹配特定字符

使用 [ ] 中括号来匹配特定的字符,其中可以使用连字符 - 表示字符范围。例如,匹配所有的元音字母,可以使用如下代码:

text = 'hello world and apple'

pattern = r'[aeiou]'

result = re.findall(pattern, text)

print(result) # ['e', 'o', 'o', 'a', 'e']

其中,[aeiou] 表示匹配 a、e、i、o、u 中的任意一个字符。

1.3 匹配重复字符

使用 { } 花括号来匹配重复的字符。例如,匹配重复出现的字符 oo,可以使用如下代码:

text = 'hello world and apple'

pattern = r'o{2}'

result = re.findall(pattern, text)

print(result) # ['oo']

其中,{2} 表示匹配前面的字符重复出现 2 次。

2. 正则表达式高级应用

2.1 匹配多个字符串

使用 | 竖杠符号来匹配多个字符串,表示“或”的关系。例如,匹配单词中以 a 或 e 结尾的单词,可以使用如下代码:

text = 'hello world and apple'

pattern = r'\w+(a|e)\b'

result = re.findall(pattern, text)

print(result) # ['hello', 'apple']

其中,(a|e) 表示匹配 a 或 e 中的任意一个字符。

2.2 匹配任意次数的字符

使用 * 星号来匹配任意次数的字符,即可以出现 0 次、1 次、多次。例如,匹配出现了 0 次或多次 e 的单词,可以使用如下代码:

text = 'hello world and apple'

pattern = r'\w*e\w*\b'

result = re.findall(pattern, text)

print(result) # ['hello', 'apple']

其中,\w* 表示匹配任意数量的字母、数字或下划线。

2.3 匹配重复次数有限的字符

使用 + 加号来匹配重复次数有限的字符,即至少出现 1 次、多次。例如,匹配至少出现 2 次 e 的单词,可以使用如下代码:

text = 'hello world and apple'

pattern = r'\w*e\w*e\w*\b'

result = re.findall(pattern, text)

print(result) # ['hello']

其中,\w*e 表示匹配至少出现 1 次 e 的字母、数字或下划线(注意,这里并不是使用 {2} 明确指定出现 2 次 e,因为中间可能还有其他字符)。

2.4 匹配开头和结尾字符

使用 ^ 符号表示匹配开头字符,使用 $ 符号表示匹配结尾字符。例如,匹配开头为 h、结尾为 e 的单词,可以使用如下代码:

text = 'hello world and apple'

pattern = r'^h\w*e$'

result = re.findall(pattern, text)

print(result) # ['hello']

其中,^h 表示匹配以 h 开头的单次,\w* 表示匹配任意数量的字母、数字或下划线,$ 表示匹配以 e 结尾的单词。

2.5 匹配特定词语

使用 ( ) 小括号来匹配特定词语。例如,匹配包含字母 a 和字母 e 的单词,可以使用如下代码:

text = 'hello world and apple'

pattern = r'\b(\w+a\w*e\w*|\w+e\w*a\w*)\b'

result = re.findall(pattern, text)

print(result) # ['hello', 'apple']

其中,(\w+a\w*e\w*|\w+e\w*a\w*) 表示匹配以 a 开头、e 结尾或以 e 开头、a 结尾的单词。

3. 总结

本文介绍了 Python 中正则表达式的基础用法和高级用法,包括匹配单个字符、匹配特定字符、匹配重复字符、匹配多个字符串、匹配任意次数的字符、匹配重复次数有限的字符、匹配开头和结尾字符、匹配特定词语等内容。

学习正则表达式在 Python 中的应用可以帮助我们更准确地处理文本数据,提高数据处理的效率和精度。

后端开发标签