将以下代码复制到Python解释器中执行,即可观察结果
import re
# 正则表达式的匹配字符分为两种:普通字符和特殊字符
ls = []
# 普通字符:普通的字符,每个字符匹配对应字符即可
ls.append(re.findall(r"o","Hello World")) #1
# |:或者,匹配符号两边任意正则表达式
ls.append(re.findall(r"o|ll","Hello World")) #2
# 此符号的隐患:
#(使用此符号时,若不用小括号进行分组限制,则此符号会将整个正则表达式一分为二)
ls.append(re.findall(r"abc|cde","abcdefg")) #3
# .:匹配除换行字符的任意单个字符
ls.append(re.findall(r"a.c","abcadcapc")) #4
# ^:匹配目标字符串的开头位置
#(此符号必须放在正则表达式的开头位置)
ls.append(re.findall(r"^a|^b|^c","abcadcapc")) #5
# $:匹配目标字符串的结尾位置
#(此符号必须放在正则表达式的结尾位置)
ls.append(re.findall(r"a$|b$|c$","abcadcapc")) #6
# *:匹配此符号前一个字符出现0次或多次的情况
ls.append(re.findall(r"yq*","aqc,y,yq,yqqqqq")) #7
# +:匹配此符号前一个字符出现1次或多次的情况
ls.append(re.findall(r"yq+","aqc,y,yq,yqqqqq")) #8
# ?:匹配此符号前一个字符出现0次或1次的情况
ls.append(re.findall(r"yq?","aqc,y,yq,yqqqqq")) #9
# {n}:匹配此符号前一个字符出现n次的情况
ls.append(re.findall(r"yq{1}","aqc,y,yq,yqqqqq")) #10
# {m,n}:匹配此符号前一个字符出现m-n次的情况(包括m和n)
#({m.}:匹配此符号前一个字符至少出现m次的情况)
ls.append(re.findall(r"yq{0,2}","aqc,y,yq,yqqqqq")) #11
# [字符集]:匹配字符集中任意一个字符
ls.append(re.findall(r"[ac]","abcadcapc")) #12
ls.append(re.findall(r"[a-z]","abcdefghijklmnopqrstuvwxyz")) #13
ls.append(re.findall(r"[0-9]","1234567890")) #14
# [^字符集]:匹配除字符集中的字符的任意一个字符
ls.append(re.findall(r"[^ac]","abcadcapc")) #15
ls.append(re.findall(r"[^ ]","x y z")) #16
# \d:匹配任意一个数字字符
ls.append(re.findall(r"\d","137abc")) #17
# \D:匹配任意一个非数字字符
ls.append(re.findall(r"\D","137abc")) #18
# \w:匹配任意一个数字字符或字母字符或下划线
ls.append(re.findall(r"\w","137abc!!!")) #19
# \W:匹配任意一个非数字字符或非字母字符或非下划线
ls.append(re.findall(r"\W","137abc!!!")) #20
# \s:匹配任意空字符(空格,\f,\n,\r,\t,\v)
ls.append(re.findall(r"\s","137\nabc")) #21
# \S:匹配任意非空字符
ls.append(re.findall(r"\S","137\nabc")) #22
# \b:匹配字符边界
ls.append(re.findall(r"\byq\b","aqc,y,yq,yqqqqq")) #23
# \B:匹配非字符边界
ls.append(re.findall(r"\Byq\B","aqc,y,yq,yqqqqq")) #24
# ^...$:完全匹配,字符串必须能完全被两个符号之间的正则表达式所匹配
ls.append(re.findall("^abc$","abc,adc,aqc,abcadcapc")) #25
ls.append(re.findall("^abc$","abc")) #26
# ():在正则表达式中用小括号括起来的内容称为子组,类似于计算中加小括号,影响匹配顺序
n = 1
for i in ls:
print("%s:%s" % (n,i))
n = n + 1