时间:2021-05-23
1、需求
当工作在UNIX Shell下时,我们想使用常见的通配符模式(即:.py,Dat[0-9].csv等)来对文本做匹配。
2、解决方案
fnmatch模块提供了两个函数:fnmatch()和fnmatchcase(),可用来执行这样的匹配,使用起来非常简单。
实例:
from fnmatch import fnmatch,fnmatchcaseprint(fnmatch('mark.txt','*.txt'))print(fnmatch('mark.txt','?ark.txt'))print(fnmatch('mark2018.txt','?ark201[0-9].txt'))运行结果:
True
True
True
一般来说,fnmatch()的大小写匹配规则与底层文件相同,例如:
print(fnmatch('mark.txt','*.TXT'))
上面代码,在Max下运行为False,在Windows下运行为True。
如果这个大小写区别对我们很重要,我们就应该使用fnmatchcase()。它会完全根据我们提供的大小写方法来做匹配。
实例:
from fnmatch import fnmatch,fnmatchcaseprint(fnmatchcase('mark.txt','*.TXT'))结果:
False
关于这些函数,一个常被忽略的特性是它们在处理非文件名式的字符串时的潜在用途。
例如,
运行结果:
['124 D 北京 BJ']
3、分析
fnmatch完成的匹配操作有点介于简单的字符串方法和全功能的正则表达式之间。
如果实际上是想编写匹配文件名的代码,那应该使用glob模块来完成,后面会介绍到的。
总结
以上所述是小编给大家介绍的Python 实用技巧之利用Shell通配符做字符串匹配,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
LIKE和ILIKE操作符可以模糊匹配字符串,LIKE是一般用法,ILIKE匹配时则不区分字符串的大小写。它们需要结合通配符使用,下面介绍两种常用的通配符。%:
python从字符串中提取数字使用正则表达式,用法如下:?12345678910111213##总结##^匹配字符串的开始。##$匹配字符串的结尾。##\b匹配
1.基本概念与作用原生字符串(RawString)指不进行转义“所见即所得”的字符串。很多编程语言早已支持原生字符串,如C#、Python、Shell等。C++
正则表达式是Python程序设计中非常实用的功能,本文就常用的正则表达式做一汇总,供大家参考之用。具体如下:一、字符串替换1.替换所有匹配的子串用newstri
一正则表达式与通配符1正则表达式是用在文件中匹配符合条件的字符串,正则是包含匹配,grep,awk,sed等命令可以支持正则表达式2通配符是用来匹配符合条件的文