2021-11-14 15:52:46 +08:00

66 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "Python 的 re 模块"
date: 2019-10-30T17:52:21+08:00
lastmod: 2019-10-30T17:52:21+08:00
tags: ["python", "re"]
categories: ["python"]
---
## match
- 定义
```python
re.match(pattern, string, flags)
```
- 尝试从字符串的开始匹配一个模式
- 第一个参数是正则表达式如果匹配成功则返回一个Match否则返回一个None
- 第二个参数表示要匹配的字符串;
- 第三个参数是标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
## search
- 定义
```python
re.search(pattern, string, flags)
```
- 在字符串内查找模式匹配,只到找到第一个匹配然后返回如果字符串没有匹配则返回None。
- 每个参数的含意与re.match一样。
## sub
- 定义
```python
re.sub(pattern, repl, string, count)
```
- 替换字符串中的匹配项
- 其中第二个函数是替换后的字符串
- 第四个参数指替换个数。默认为0表示每个匹配项都替换。
re.sub还允许使用函数对匹配项的替换进行复杂的处理re.sub(r'\s', lambda m: '[' + m.group(0) + ']', text, 0);将字符串中的空格' '替换为'[ ]'。
## split
- 定义
```python
re.split(pattern, string)
```
- 分割字符串
## findall
- 定义
```python
re.findall(pattern, text)
```
- 获取字符串中所有匹配的字符串
## compile
- 定义
```python
re.compile(pattern)
```
- 把正则表达式编译成一个正则表达式对象
- 示例
```python
import re
text = "JGood is a handsome boy, he is cool, clever, and so on..."
regex = re.compile(r'\w*oo\w*')
print regex.findall(text) #查找所有包含'oo'的单词
print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'oo'的单词用[]括起来
```