正则表达式-个人总结及演示

将以下代码复制到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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值