python正则match匹配学习小笔记

一、单字符匹配:

1、 '.' 表示匹配字符串中的首个字符为任意字符,打印输出 :<re.Match object; span=(0, 1), match='w'>

import re


# 表示匹配任意一个字符
print(re.match('.', 'wqeq'))

2、 '\d' 表示匹配的字符串中的首个字符是包含在<0-9>中,输出:<re.Match object; span=(0, 1), match='1'>

# 表示0-9任意一个数字
print(re.match('\d', '12sdada'))

3、'\D' 表示匹配的字符串中的首个字符为非数字字符,这里\D打印出来的就是None,因为字符串的第一个字符是数字,匹配不上所以输出:None。

# \D 表示非数字
print(re.match('\D', '12sdada'))

4、'\s ' 表示匹配的字符串中的首个字符为空白字符 \t为 tab键 属于空白字符,输出 :<re.Match object; span=(0, 1), match='\t'>

# 表示空白字符 格式符都属于空白字符
print(re.match('\s', '\t'))

5、'\S' 表示匹配的字符串中的首个字符为非空白字符,所以只要不是空白字符都能正确匹配。      这里输出:<re.Match object; span=(0, 1), match='\\'>。这里为什么输出双斜杠,是因为python在字符串中斜杠属于转义符,为了让re模块能正确识别到斜杠,我们需要将字符斜杠转义一下。

# 表示非空白
print(re.match('\S', '\\'))

6. '\w'表示匹配的字符串中首个字符包含 [A-Z a-z 0-9_ ],所以这里能直接输出:<re.Match object; span=(0, 1), match='_'>

# 表示大小字母 数字 或者下划线
print(re.match('\w', '_'))

7、'\W' 匹配是除[A-Z a-z 0-9_ ]以外的字符,如标点符号等,这里会输出:<re.Match object; span=(0, 1), match=','>

# \W 表示除大小字母 数字 或者下划线以外
print(re.match('\W', ','))

二、字符集匹配:

那在上面学习了单字符匹配,我们在日常的编写脚本等工作中更多的是对字符集的匹配:

1、一个中括号仅为一个字符的匹配,当我们像下面这样进行范围匹配的时候,匹配值输入的是ab,但匹配出来的值不会是ab。所以这里输出 <re.Match object; span=(0, 1), match='a'> 也是为单字符,

# 匹配一定范围内
print(re.match('[abcd]', 'ab'))

2、当想对值进行取反时可以用到^,也就是shift+6,对需要匹配的值进行一个反向匹配。匹配出来的值不包含在a-d之间。输出为e。

# ^取反
print(re.match('[^a-d]', 'efw'))

3、所以接下来要写字符集匹配函数。

        1)或 当匹配值满足中括号内任意一个条件时,则输出匹配:3

# '[0-9A-Za-z]' 关系为或者
print(re.match('[0-9A-Za-z]', '3a'))

        2)与 对多个字符进行匹配时,匹配条件用多个中括号连接,满足条件即可输出:1gX

# 多个单字符同时匹配'[0-9][a-z]'
print(re.match('[0-9][a-z][A-Z]', '1gX'))

之前的工作中也没想着积累什么东西,后续没事的时候也会写一下吧。测试小菜鸡一枚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值