# ### 正则表达式 => 单个字符匹配
import re
"""
lst = re.findall(正则表达式,字符串)
"""
# (1) 预定义字符集
# \d 匹配数字
strvar = "sadfasdf^*&^&*^&*^&*你好 神秘男孩 2400909()()"
lst = re.findall("\d",strvar)
print(lst)
# \D 匹配非数字
strvar = "&&*sdfjklasjdkf_sdf',神秘女孩23423岁4234234"
lst = re.findall("\D",strvar)
print(lst)
# \w 匹配字母或数字或下划线 (正则函数中,支持中文的匹配)
strvar = "uiui7887_王文&*&*"
lst = re.findall("\w",strvar)
print(lst)
# \W 匹配非字母或数字或下划线
strvar = "uiui7887_王文&*&*"
lst = re.findall("\W",strvar)
print(lst)
# \s 匹配任意的空白符 \n \t \r " "
strvar = " 周杰伦 "
lst = re.findall("\s",strvar)
print(lst)
# \S 匹配任意非空白符
strvar = " sdf234 "
lst = re.findall("\S",strvar)
print(lst)
# \n 匹配一个换行符 [最好在正则表达式的前面加上r,让转义字符失效,原型化匹配]
strvar = """
王文你真帅呀,我受不了
"""
lst = re.findall(r"\n",strvar)
print(lst)
# \t 匹配一个制表符
lst = re.findall(r"\t",strvar)
print(lst)
# (2) 字符组 从小组中默认选一个
lst = re.findall("[123]","451627")
print(lst)
print(re.findall('a[abc]b','aab abb acb adb')) # aab abb acb
print(re.findall('a[0123456789]b','a1b a2b a3b acb ayb')) # a1b a2b a3b
# 优化写法 0123456789 => 0-9 0到9 -是特殊字符 , 居右特殊含义
print(re.findall('a[0-9]b','a1b a2b a3b acb ayb')) # a1b a2b a3b
print(re.findall('a[abcdefg]b','a1b a2b a3b acb ayb adb')) # acb adb
# 优化写法 abcdefg a-g 26个小写字母 a-z
print(re.findall('a[a-z]b','a1b a2b a3b acb ayb adb')) # acb adb ayb
print(re.findall('a[ABCDEFG]b','a1b a2b a3b aAb aDb aYb')) # aAb aDb
# 优化写法 ABCDEFG A-G 26个大写字母A-Z
print(re.findall('a[A-Z]b','a1b a2b a3b aAb aDb aYb')) # aAb aDb aYb
# 匹配所有的字母+数字
print(re.findall('a[0-9a-zA-Z]b','a-b aab aAb aWb aqba1b')) # aab aAb aWb aqb a1b
# 优化写法 0-9a-zA-Z 0-z 范围变大 一些特殊符号也被包含进行了 , 不推荐使用
print(re.findall('a[0-z]b','a-b aab aAb aWb aqba@b')) # ['aab', 'aAb', 'aWb', 'aqb', 'a@b']
print(re.findall('a[0-9][*#/]b','a1/b a2b a29b a56b a456b')) # a1/b
# ^ 出现在字符组中,代表除了 ,除了+-*/ 这个符号 都要
print(re.findall('a[^-+*/]b',"a%b ccaa*bda&bd")) # ['a%b', 'a&b']
# 匹配特殊符号 利用\ 让原来有意义的字符失效, 通过转义来实现匹配
lst = re.findall(r"a[\^\-]b","a^b a-b")
print(lst)
# 匹配\
lst = re.findall(r"a\\b",r"a\b")
print(lst) # 显示\\
print(lst[0]) # 打印出来是一个\
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律