一丶re模块
#正则表达式: 从一串字符中,找出你想要的字符串.
import re
### 单个元字符的匹配
# W 除了数字 ,字母,中文, 下划线
print(re.findall('W','dsadas1231 +1-+2*/,.'))
# w 匹配中文,数字,字母,下划线
print(re.findall('w','jdsa213-+*/,./:[]'))
# s 匹配 :空格
print(re.findall('s','a
d '))
# S 匹配: 非 空格
print(re.findall('S','
as da '))
#d 只匹配数字:
print(re.findall('d','123da13d'))
#D 值匹配非数字
print(re.findall('D','dsa1321'))
# A 和 ^ 从开头开始匹配
print(re.findall('Ahe','he kf danc j he ,d'))
print(re.findall('^he','he kf danc j he ,d'))
# $ 从末尾开始匹配
print(re.findall('aaa','dsaaaddssaaa'))
print(re.findall('aaa$$','dsaaaddssa1aaa'))
#
print(re.findall('
','d
d
ds a'))
print(re.findall(' ','d
d
ds a'))
#### 元字符匹配
# . 匹配任意一个字符
# 如果匹配成功光标则移到匹配成功的最后的字符
# 如果匹配未成功光标则向下移动一位再次匹配
print(re.findall('a.b','aa ,,dan a1b'))
# ? 匹配 0个 或者 1个 由左边字符定义的片段
print(re.findall('a?b','ab aabb aaabbb')) # ['ab', 'ab', 'b', 'ab', 'b', 'b']
print(re.findall('a?b','sb ab aabb')) # [b, ab ,ab ,b]
# * 匹配 0个 或者 多个 左边字符表达式, 满足贪婪模式(即:只要符合就ab都获取)
print(re.findall('a*b','ab abb a b aabb')) # ab ab b b aab b
# + 匹配 1个 或者 多个 左边字符表达式 ,满足贪婪模式
print(re.findall('a+b','ab abab aab bba aabb b')) #ab ab aab aab
#{m,n} 匹配m个至n个(能取到n)个左边字符表达式. 满足贪婪模式
print(re.findall('a{1,3}b','ab abb b bb aaab aaaaaab')) # ab ab aaab aaab
# .* 贪婪匹配 从头到尾
print(re.findall('a.*b','aaa bbbliye dkjsah bnb'))
print(re.findall('a.*b','aaa b
bbliye dkjsah bnb'))
# .*? 此时的? 不是对左边的字符进行0次或者1次的匹配
# 而只是针对.* 这种贪婪模式进行一种限定:告知它要遵循非贪婪模式, 推荐使用!!
# 0给或者多个
print(re.findall('a.*?b','ab a#b bb abb aabb')) # ab a#b ab aab