作用
- 匹配和搜索:使用正则表达式可以从文本中查找匹配某个模式的字符串,例如查找所有包含特定单词的句子。
- 替换:正则表达式可以用来替换字符串中匹配某个模式的部分,例如将所有出现的 “color” 替换为 “colour”。
- 验证:可以使用正则表达式来验证一个字符串是否符合特定的格式,例如验证一个电话号码是否符合标准的格式。
- 提取:正则表达式可以用来从字符串中提取特定的部分,例如提取一个电子邮件地址中的用户名和域名。
网站:
正则表达式在线测试 | 菜鸟工具
语法
compile
# compile() compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象
re.compile(pattern[, flags])
# pattern : 一个字符串形式的正则表达式
# flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
# re.I 忽略大小写
# re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
# re.M 多行模式
# re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
# re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
# re.X 为了增加可读性,忽略空格和 # 后面的注释
mport re
pattern = re.compile(r'([a-z]+) ([a-z]+)', re.I)
m = pattern.match('Hello World Wide Web')
print(m)
findall
```pythonfindall 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有。
findall(string[, pos[, endpos]])string : 待匹配的字符串。
pos : 可选参数,指定字符串的起始位置,默认为 0。
endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。
import re
pattern = re.compile(r’\d+’) # 查找数字 result1 = pattern.findall(‘runoob 123 google 456’) result2 = pattern.findall(‘run88oob123google456’, 0, 10)
print(result1) # [‘123’, ‘456’] print(result2) # [‘88’, ‘12’]
<a name="L86l3"></a>
### 符号
```python
. * + ? \ [ ] ^ $ { } | ( )