python元字符

"""
元字符:
        普通字符:      re.findall('ab','abdfetdfg') 匹配ab,python中也可以匹配中文
        或关系:  |       re.findall('a|b','adtfbkitj')匹配a,b
        匹配单个字符: .  re.findall('张.丰',"张三丰,张无忌,张无敌")匹配张三丰,除换行
        匹配字符集:  []   [#_a0-9a-z] re.findall('[0-9]','asd4613') 匹配[]中任意一个字符4,6,1,3
        字符集取反:  ^   [^_#0-9a-z] re.findall('[^_#0-9a-z]','124ljligiABC') 匹配[]中没有的字符,匹配A,B,C
        匹配字符串开头:    ^   re.findall('^jocker','jocker,wanzha')
        匹配字符串结尾:    $   re.findall('jocker$','jocker,wanzha')
        匹配字符重复:     *   匹配前面的字符出现0次或者多次
        匹配字符重复:     +   匹配前面的字符出现1此或多次
        匹配字符重复:     ?   匹配前面的字符出现0此或1次
        匹配字符重复:    {n}   匹配前面的字符出现n次
        匹配字符重复:    {m,n}  匹配前面的字符出现m到n次

        匹配任意(非)数字字符:    \d:匹配任意数字字符([0-9]) \D:匹配任意非数字字符([^0-9])
        匹配任意(非)普通字符:    \w:匹配任意普通字符(数字,字母,下划线,汉字)  \W:匹配任意非普通字符
        匹配任意(非)空字符:     \s:匹配空字符(指空格 \r \n \t \v \f字符)  \S:匹配非空字符
        匹配开头结尾位置:       \A:表示开头位置   \Z:表示结尾位置
        匹配(非)单词的边界位置:   \b:表示单词边界(单词边界指数字 字母汉字下划线与其他字符的交界位置) \B:表示非单词边界

		   2.正则表达式转义
                1.在使用正则表达式匹配特殊字符需要加\表示转移,特殊字符有:   . * + ? ^ $ [] () {} | \
                    使用特殊字符时用\.表示特殊字符.
                2.在编程中使用原生字符串书写正则表达式避免多重转义
                    python字符串   --->    正则      --->    目标字符串
                    "\\$\\d+"    解析为    \$\d+     匹配    "$100"
                    "\\$\\d+"    等同于    r"\$\d+"

            3.贪婪模式非贪婪模式
                贪婪模式:默认情况下,匹配重复的元字符总是尽可能多的向后匹配内容。比如: * + ? {m,n}
                非贪婪模式:让匹配重复的元字符尽可能少的向后匹配内容
                    在匹配重复元字符后加‘?’号即可    如: *?
            4.正则表达式分组
                1.在正则表达式中,用()建立正则表达式的内部分组,子组正则表达式的一部分,可以作为内部整体操作对象
                2.re.search(r"(ab)+","abaabbababa").group()
                3.捕获组
                    给正则表达式起个名字,表达该子组的含义,这种名称的子组称为捕获组
                    re.search(r'(?P<组名>ab)+‘,“abababaaab”).group(组名)
            5.re模块使用
                1.re的使用
                        1.re.finditer(pattern,string,flags=0)   返回值是可迭代对象
                        2.re.fullmatch(pattern,string,flags=0)  完全匹配一个字符串
                        3.re.match(pattern,string,flags=0)      匹配某个字符串开始位置
                        4.re.search(pattern,string,flags=0)     匹配目标字符串第一个符合的内容
                        1.re.findall(patern,s,flags=0)
                        2.regex = re.compile(pattern,flags=0)
                            regex.findall(s)
                        3.re.split(pattern,s)       按照正则表达式匹配内容切割字符串,返回字符串列表
                        4.re.sub(pattern,replace,string,max,flags=0) replace表示替换的字符串  max表示替换几处
                        5.re.subn(pattern,replace,string,max,flags=0) replace表示替换的字符串  max表示替换几处返回替换了几处
                2.compile对象使用
                    regex= re.compile(pattern)
                    regex.findall(str)
                3.match对象使用

"""
import re

l = re.findall('-*[0-9]+',"-45,82,64,7,-8")
# 匹配除空格以外的字符,可以出现一次或多次
l =re.findall('[^ ]+','sdf,!@#e,87,@yg*#,Ert')
# 匹配任意(非)空字符
l= re.findall('\w+\s+\w+',"hello    world")
l=re.findall('\S+',"hello   world")
# 匹配开头结尾位置:\A \Z
l=re.findall('\Ahello','hello world')
l=re.findall('world\Z','hello world')
# 匹配(非)单词的边界位置:
l=re.findall(r'\bis\b',"this #is my book")
l =re.findall(r'\Bis\b',"this is my book")
l = re.findall(r'\b\d+\b','123,45,#55,NUM123')
print(l)
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值