正则是什么
正则表达式使用
神一样的(.*?)
可选标志(flags)
可选标志修饰符用于控制匹配的模式。多个标志可以通过按位 OR(|) 它们来指定。(如 re.I | re.M 被设置成 I 和 M 标志)
| 修饰符 | 描述 |
|---|---|
| re.I | 使匹配对大小写不敏感 |
| re.L | 做本地化识别(locale-aware)匹配 |
| re.M | 多行匹配,影响 ^ 和 $ |
| re.S | 使 . 匹配包括换行在内的所有字符 |
| re.U | 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. |
| re.X | 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解 |
常用正则模式符
案例: 字符串
s = '''abcd-摩托车.blend\n-----1234-大象.blend\n----efg-卡车.blend\n----5678-蘑菇.blend\n---'''
import re
# - 只提取前面有数字的 blender文件信息
pattern = r"[0-9]+.+\.blend"
pattern = r"-([0-9]+.*?)\n"
res = re.findall(pattern=pattern, string=s)
print(res)
import re
email1 = "karrycharon@qq.com"
email2 = "karrycharon@163.net"
email3 = "邮箱--karrycharon@163.com"
email4 = "karrycharon@qqcom"
# .net结尾 中文开头 没有@ 没有.
pattern = r'^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.com$'
res = re.findall(pattern=pattern, string=email1)
print("emil1:", res)
res = re.findall(pattern=pattern, string=email2)
print("emil2:", res)
res = re.findall(pattern=pattern, string=email3)
print("emil3:", res)
res = re.findall(pattern=pattern, string=email4)
print("emil4:", res)