Python 中的正则表达式:re 模块使用指南 正则表达式是一种处理文本的强有力工具,可以用来匹配、替换、分割字符串等等操作。Python 的 re 模块提供了对正则表达式的支持,本文将介绍如何使用 re 模块进行正则表达式操作。 1. re 模块简介 re 模块是 Python 的标准库之一,用于处理正则表达式。可以使用 re 模块进行字符串匹配、替换、分割等操作。使用 re 模块需要先导入该模块: ```python import re ``` 2. re 模块的基本用法 2.1 简单匹配 re 模块提供了 match() 函数用于正则表达式的匹配。该函数的第一个参数是正则表达式字符串,第二个参数是要匹配的字符串。 ```python import re # 匹配字母 a 开头的字符串 result = re.match('a', 'abc') print(result) ## 匹配无字母 a 开头的字符串 result = re.match('a', 'bcd') print(result) # None ``` match() 函数返回的是一个 Match 对象,如果匹配成功,该对象有以下属性: - group(): 获取匹配的字符串。 - start(): 获取匹配的起始位置。 - end(): 获取匹配的结束位置。 - span(): 返回匹配的位置范围。 2.2 字符集匹配 字符集用于匹配一组字符中的任意一个字符。在正则表达式中,字符集用方括号 [] 表示。 ```python import re # 匹配 a、b、c 字符中的任意一个字符 result = re.match('[abc]', 'abc') print(result) # # 匹配数字 0 到 9 中的任意一个数字 result = re.match('[0-9]', '6') print(result) # # 匹配非 a、b、c 字符中的任意一个字符 result = re.match('[^abc]', 'd') print(result) # ``` 2.3 元字符匹配 re 模块提供了一些特殊的元字符用于表达一些常见的字符集,包括:\d、\D、\s、\S、\w、\W、^、$、. 等。 - \d: 匹配数字字符。 - \D: 匹配非数字字符。 - \s: 匹配空白字符,包括空格、制表符、换行符等。 - \S: 匹配非空白字符。 - \w: 匹配字母、数字、下划线字符。 - \W: 匹配非字母、数字、下划线字符。 - ^: 匹配字符串的开头。 - $: 匹配字符串的结尾。 - .: 匹配任意一个字符,除了换行符。 ```python import re # 匹配 0-9 的数字 result = re.match('\d', '6') print(result) # # 匹配字母或数字 result = re.match('\w', 'a7') print(result) # # 匹配任意一个字符 result = re.match('.', 'a') print(result) # ``` 2.4 重复匹配 re 模块提供了一些特殊的符号用于重复匹配,包括:*、+、?、{m}、{m,n}。 - *: 匹配前一个字符出现 0 次或多次。 - +: 匹配前一个字符出现 1 次或多次。 - ?: 匹配前一个字符出现 0 次或 1 次。 - {m}: 匹配前一个字符出现 m 次。 - {m,n}: 匹配前一个字符出现 m 到 n 次。 ```python import re # 匹配任意数量的 b 字符 result = re.match('b*', 'bbcc') print(result) # # 匹配至少一个 a 字符 result = re.match('a+', 'aabbc') print(result) # # 匹配可选的 a 字符 result = re.match('a?', 'bbc') print(result) # # 匹配两个 a 字符 result = re.match('a{2}', 'aabbc') print(result) # # 匹配一个到两个 a 字符 result = re.match('a{1,2}', 'aabbc') print(result) # ``` 3. re 模块的高级应用 3.1 正则表达式分组 使用圆括号 () 可以将一组字符当做一个整体进行匹配。 ```python import re # 匹配一个数字、一个字母、再一个数字 result = re.match('(\d)(\w)(\d)', '1a2') print(result) # print(result.group(1)) # 1 print(result.group(2)) # a print(result.group(3)) # 2 ``` 3.2 正则表达式替换 re 模块提供了 sub() 函数用于字符串的替换。该函数的第一个参数是要替换的正则表达式,第二个参数是替换成的字符串,第三个参数是要进行替换的字符串。 ```python import re # 将所有的数字替换为 # result = re.sub('\d', '#', '123abc456') print(result) # ###abc### ``` 3.3 正则表达式分割 re 模块提供了 split() 函数用于字符串的分割。该函数的第一个参数是要进行分割的正则表达式,第二个参数是要进行分割的字符串。 ```python import re # 使用空白字符分割字符串 result = re.split('\s+', 'a b c d') print(result) # ['a', 'b', 'c', 'd'] ``` 4. 总结 Python 的 re 模块提供了对正则表达式的支持,可以用于字符串的匹配、替换、分割等操作。本文介绍了 re 模块的基本用法和高级用法,希望能够帮助读者更好地使用正则表达式。