在Python中使用正则表达式,你需要先导入`re`模块,然后使用该模块提供的函数进行匹配、搜索、查找所有和替换操作。以下是一些基本示例和说明:
导入re模块
```python
import re
```
匹配操作
`re.match(pattern, string)`:从字符串的开头尝试匹配正则表达式。
`re.search(pattern, string)`:扫描整个字符串,找到第一个匹配的内容。
查找所有
`re.findall(pattern, string)`:查找所有符合模式的子字符串,并返回一个列表。
替换
`re.sub(pattern, repl, string)`:在字符串中查找匹配的模式,并将其替换为指定的字符串。
示例
示例1:匹配固定文字
```python
import re
text = "我最近在学Python编程, Python真有意思!"
result = re.findall("Python", text)
print(result) 输出: ['Python', 'Python']
```
示例2:查找手机号码
```python
import re
text = "小明的手机号是13912345678,小红的号码是15887654321"
phone_numbers = re.findall(r"1[3-9]\d{9}", text)
print(phone_numbers) 输出: ['13912345678', '15887654321']
```
示例3:提取邮箱地址
```python
import re
text = "小明的邮箱是xiaoming@qq.com, 小红的邮箱是xiaohong@163.com"
email_addresses = re.findall(r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+", text)
print(email_addresses) 输出: ['xiaoming@qq.com', 'xiaohong@163.com']
```
示例4:替换文本内容
```python
import re
text = "Hello, world!"
new_text = re.sub(r"world", "Python", text)
print(new_text) 输出: Hello, Python!
```
常用正则表达式符号
`\d`:匹配一个数字字符。
`[a-zA-Z]`:匹配一个字母字符(不区分大小写)。
`\w`:匹配一个单词字符(包括字母、数字和下划线)。
`\s`:匹配一个空白字符(包括空格、制表符和换行符)。
`.*`:匹配任意数量的任意字符(包括0个字符)。
`+`:匹配前面的子表达式一次或多次。
`?`:匹配前面的子表达式0次或1次。
`{n}`:匹配前面的子表达式恰好n次。
`{n,m}`:匹配前面的子表达式至少n次,至多m次。
`^`:匹配输入字符串的开始位置。
`$`:匹配输入字符串的结束位置。
`|`:表示或,用于匹配多个选择。
`()`:用于创建分组,并可以通过`group()`方法提取匹配的内容。
小贴士
反斜杠`\`在正则表达式中是一个转义字符,需要使用双反斜杠`\\`来表示。
在Python字符串中,反斜杠`\`也需要使用双反斜杠`\\`来表示。
通过这些基础知识和示例,你应该能够在Python中熟练地使用正则表达式进行文本处理。