金融电商RAG实战:稀疏、稠密、混合与融合检索架构深度对比与选型指南
2026/5/26 17:28:28
.# 匹配任意单个字符(除换行符)^# 匹配开头$# 匹配结尾示例:a.c→ 匹配 “abc”, “a1c”, “a c”
[abc]# 匹配a或b或c[a-z]# 匹配小写字母[0-9]# 匹配数字[^abc]# 匹配不是a/b/c的字符\d# 等价于 [0-9]\w# 单词字符:字母+数字+下划线\s# 空白字符:空格、tab等*# 0次或多次+# 1次或多次?# 0次或1次{n}# 恰好n次{n,}# 至少n次{n,m}# n到m次示例:a+→ “a”, “aaa”\d{3}→ 匹配3个数字
\w+@\w+\.\w+user@qq.com✅
1[3-9]\d{9}13812345678✅
\d{4}-\d{1,2}-\d{1,2}2024-01-15✅
|# 或:a|b 匹配a或b()# 分组:提取匹配的部分(?:)# 非捕获分组(不提权)分组示例:
(\d{3})-(\d{8}) # 匹配电话并提取区号和号码| 需求 | 正则 |
|---|---|
| IP地址 | \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} |
| 中文字符 | [\u4e00-\u9fa5] |
| 空白行 | ^\s*$ |
| python注释行 | ^\s*#.*$ |
| HTML标签 | <[^>]+> |
importre text="我的电话是13812345678"phone=re.findall(r'1[3-9]\d{9}',text)print(phone)# ['13812345678']# 替换new_text=re.sub(r'\d+','***',"密码123456")print(new_text)# 密码***口诀记忆:
.万用,*贪婪,+至少一,?可选,[]选一个,\d数字