Python 中的正则表达式,让你更加灵活地处理文本 在日常的编程工作中,我们经常需要对文本进行处理。而正则表达式是一种强大的处理文本的工具,它可以帮助我们快速、高效地进行匹配、查找、替换、分割等操作。 Python 中支持正则表达式,其内置的 re 模块提供了丰富的正则表达式操作函数。本文将详细介绍 Python 中正则表达式的使用,帮助读者更加灵活地处理文本。 正则表达式的基本语法 正则表达式是一种用于匹配字符串的模式,其语法相对复杂,但是很强大。下面是一些常用的正则表达式符号: 符号 说明 . 匹配任意单个字符,除了换行符\n。 ^ 匹配字符串的开头。 $ 匹配字符串的结尾。 * 匹配前面的字符零次或多次。 + 匹配前面的字符一次或多次。 ? 匹配前面的字符零次或一次。 {n} 匹配前面的字符恰好 n 次。 {n,} 匹配前面的字符至少 n 次。 {n,m} 匹配前面的字符至少 n 次,但不超过 m 次。 [] 匹配括号内的任意一个字符。 | 匹配左右两侧任意一个表达式。 正则表达式示例 下面是一些常见的正则表达式示例: 表达式 匹配字符串 \d 任意数字字符,等同于[0-9]。 \w 任意字母数字字符,等同于[a-zA-Z0-9_]。 \s 任意空白字符,包括空格、制表符、换行符等。 . 匹配任意单个字符。 ^;$ 匹配字符串的开头和结尾。 [abc] 匹配 a、b 或 c 中的任意一个。 [0-9]+ 匹配一个或多个数字字符。 [a-z]{3} 匹配三个小写字母。 [A-Z]{2,5} 匹配两到五个大写字母。 \d{3}-\d{4} 匹配电话号码格式,如 123-4567。 (\d{3})+(\w+) 匹配连续的数字和字母。 Python 中 re 模块的使用 Python 的 re 模块提供了一系列函数来支持正则表达式的操作。下面是一些常用的函数: 函数 说明 re.match(pattern, string) 从字符串的开头开始匹配,返回一个 Match 对象,如果匹配失败,返回 None。 re.search(pattern, string) 从整个字符串中查找第一个匹配项,返回一个 Match 对象,如果匹配失败,返回 None。 re.findall(pattern, string) 从整个字符串中查找所有匹配项,返回一个包含所有匹配项的列表。如果没有匹配项,返回一个空列表。 re.sub(pattern, repl, string) 将匹配到的字符串替换为指定的字符串,并返回替换后的字符串。如果没有匹配项,返回原始字符串。 re.split(pattern, string) 使用指定的正则表达式分割字符串,并返回分割后的字符串列表。 下面是一些示例代码: import re # 匹配字符串的开头 match = re.match(r'hello', 'hello world') if match: print('match:', match.group()) # 匹配字符串中的第一个匹配项 search = re.search(r'world', 'hello world') if search: print('search:', search.group()) # 查找所有匹配项 findall = re.findall(r'\d+', '2021年7月') if findall: print('findall:', findall) # 替换字符串中的匹配项 sub = re.sub(r'\d+', '2022', '2021年7月') if sub: print('sub:', sub) # 分割字符串 split = re.split(',', 'a,b,c') if split: print('split:', split) 总结 正则表达式是一种强大的处理文本的工具,Python 中内置的 re 模块提供了丰富的正则表达式操作函数,可以帮助我们快速、高效地进行匹配、查找、替换、分割等操作。掌握正则表达式的使用,可以让我们更加灵活地处理文本数据,提高编程效率。