Python3 RE正则表达式完全指南

0 下载量 174 浏览量 更新于2024-08-29 收藏 356KB PDF 举报
"Python3中的正则表达式(Regex)是一种强大的文本处理工具,用于处理字符串,进行模式匹配和查找。在Python中,通过导入`re`模块来使用正则表达式功能。以下是对正则表达式的详细总结:" 1. **引入正则模块** 要在Python3中使用正则表达式,首先要导入内置的`re`模块。这个模块提供了各种正则表达式相关的函数,如`match`、`search`、`findall`等。 ```python import re ``` 2. **`match()`方法** `match()`函数用于从字符串的开始位置进行匹配。它接收两个参数:一个是正则表达式模式,另一个是要匹配的字符串。如果匹配成功,返回一个匹配对象;否则,返回`None`。 ```python result = re.match(pattern, str) if result is not None: # 如果匹配成功,可以使用group()方法提取匹配内容 matched_content = result.group() ``` 3. **正则表达式基础** - **单字符匹配规则** - `.`:匹配任意单个字符(除了换行符`\n`) - `[]`:匹配中括号内列出的任何字符 - `\d`:匹配数字(等价于`[0-9]`) - `\D`:匹配非数字字符 - `\s`:匹配空白字符(包括空格、制表符、换页符等) - `\S`:匹配非空白字符 - `\w`:匹配字母、数字或下划线(等价于`[a-zA-Z0-9_]`) - `\W`:匹配非单词字符(`\w`的反面) - **数量规则** - `*`:匹配前面的字符0次或多次 - `+`:匹配前面的字符1次或多次 - `?`:匹配前面的字符0次或1次 - `{m}`:匹配前面的字符恰好m次 - `{m,}`:匹配前面的字符至少m次 - `{m,n}`:匹配前面的字符m到n次 4. **手机号码验证示例** 假设我们想要验证一个手机号码是否符合规则,可以编写如下的正则表达式: ```python pattern = "1[35678]\d{9}" # 匹配以1开头,第二位是3、5、6、7或8,其余9位是任意数字的手机号码 phoneStr = "18230092223" result = re.match(pattern, phoneStr) if result is not None: print(result.group()) ``` 5. **原始字符串(raw string)** 在Python中,以`r`开头的字符串称为原始字符串,它不会进行转义。例如,`r"\nabc"`将被视为包含`\n`、`a`、`b`和`c`四个字符的字符串,而不是一个换行符后跟`abc`。 在正则表达式中,使用原始字符串可以简化对反斜杠`\`的处理,避免转义问题。例如,无需写成`"\\d"`,可以直接用`"\d"`表示数字。 6. **边界匹配** - `^`:匹配字符串的开始位置 - `$`:匹配字符串的结束位置 - `\b`:匹配单词的边界(单词与非单词字符之间) - `\B`:匹配非单词边界(单词字符与单词字符之间) 正则表达式在Python中非常强大,能够处理复杂的字符串匹配和查找任务,广泛应用于数据清洗、文本分析和网络爬虫等领域。掌握好正则表达式对于提升Python编程能力大有裨益。