- 定义
正则表达式:用来检索、替换符合某个模式的文本 - 元字符和普通字符(原子操作:什么字符表示什么含义)
```python
[abc] :匹配a或b或c
abc :匹配abc
[a-z] :匹配所有小写字母
[a-zA-Z] :匹配所有字母
[0-9]或\d :匹配所有数字
\D :匹配非数字字符
[a-zA-Z0-9]:匹配所有字母和数字
. :匹配 \n \r以外任意字符
^[abc] :匹配以a或b或c开头的字符串的是哪一个字母
[^abc] :匹配除a、b、以外的其他字符(abc取反)
[abc]$ :匹配以a、b、c结尾的字符串的字母
# 表示字符数量的元字符
{n} :表示前面的字符为n个
{n,} :表示前面的字符至少有n个
{n,m} :表示前面的字符有n-m个
* :表示前面的字符为任意个(可以是0)
.* :表示任意个任意字符
? :当紧跟在其他限制符(*、+、{n}、{n,}、{n,m})之后,切换到非贪婪模式
() :提取正则匹配到的内容
```
- 演示
import re
result = re.findall(r'[gol]', 'helloworld')
result2 = re.findall(r'gol', 'helloworld')
result3 = re.findall(r'[a-z]', 'helloworld')
result4 = re.findall(r'[a-z]$', 'helloworld')
print(result)
print(result2)
print(result3)
print(result4)
result = re.findall(r'\d{3,}', '123456helloworld')
result2 = re.findall(r'\d{3,5}', '123456helloworld')
result3 = re.findall(r'\d*', '123456helloworld')
print(result)
print(result2)
print(result3)
result = re.findall(r"1.*_", "1a@A_1c$B_")
print(result)
result2 = re.findall(r"1.*?_", "1a@A_1c$B_")
print(result2)
result3 = re.findall(r"1(.*?)_", "1a@A_1c$B_")
print(result3)
result = re.findall(r'^1[3|5|7|8|9]\d{9}$', '18435681191')
print(result)