python-进阶教程-利用通配符进行字符串匹配

0.摘要

在Linux Shell中,我们可以用ls *.py的命令显示所有以.py结尾的文件或文件夹。在python中我们可以借助fnmatch模块,实现含通配符的字符串匹配。

 

1.常用通配符

符号作用
*匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file *
?匹配任何一个字符(不在括号内时)?代表任意1个字符 ls file 0
[abcd]匹配abcd中任何一个字符
[a-z]表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0
{..}表示生成序列. 以逗号分隔,且不能有空格
补充 
[!abcd]或[^abcd]表示非,表示不匹配括号里面的任何一个字符

 

2.fnmatch模块

from fnmatch import fnmatch, fnmatchcase

print(fnmatch('foo.txt', '*.txt'))   #True
print(fnmatch('foo.txt', '?oo.txt')) #True
from fnmatch import fnmatchcase as match

addresses = [
    '5412 N CLARK ST',
    '1060 W ADDISON ST',
    '1039 W GRANVILLE AVE',
    '2122 N CLARK ST',
    '4802 N BROADWAY',
]

a = [addr for addr in addresses if match(addr, '* ST')]
print(a)
# ['5412 N CLARK ST', '1060 W ADDISON ST', '2122 N CLARK ST']

b = [addr for addr in addresses if match(addr, '54[0-9][0-9] *CLARK*')]
print(b)
#['5412 N CLARK ST']

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值