EXCEL中宏毒X97M.Laroux.DX1的解决办法-英雄云拓展知识分享
134
2023-11-07
【摘要】 本书摘自《Python学习笔记 从入门到实战》一书中第11章,第1节,由张学建编著。
11.1.3 实现字符串匹配处理
在计算机编程应用中,经常需要对某个字符串进行匹配处理,例如提取字符串中的数字、 大写字母、特殊符号等。在下面的内容中,将详细讲解在Python中实现字符串匹配处理的知识。
(1)函数 fnmatch()
在内置模块fnmatch中,函数fnmatch) 的功能是采用大小写区分规则和底层文件相同(根 据操作系统而区别)的模式进行匹配。其语法格式如下所示:
fnmatch.fnmatch(name,pattern)
上述语法格式的功能是测试 name 是否匹配pattern, 是则返回true, 否则返回 false。
(2)函数 fnmatchcase)
在内置模块fnmatch中,函数 fnmatchcase()的功能是根据所提供的大小写进行匹配,用法和上面的函数 fnmatch()类似。
函数 fnmatch) 和 fnmatchcase) 的匹配样式是UnixShell 风格的,其中“*”表示匹配任 何单个或多个字符,“?”表示匹配单个字符, [seq]表示匹配单个seq 中的字符,[!seq]表示 匹配单个不是seq 中的字符。
在下面的实例文件中,演示了分别使用函数 fnmatch()和 fnmatchcase()实现字符串匹配的 过程。
实例11-4:匹配处理各种类型的字符
源码路径:下载包\daima\11\11-4
实例文件 pipeizifu.py 的具体实现代码如下所示。
from fnmatch import fnmatchcase as match
import fnmatch
#匹配以.py 结尾的字符串
①print(fnmatch.fnmatch('py','.py'))
②print(fnmatch.fnmatch('tlie.py','*.py'))
#On OS X(Mac)
③#print(fnmatch.fnmatch('123,txt','*.TXT'))
#On Windows
④print(fnmatch,fnmatch('123.txt','*.TXT'))
⑤print(fnmatch.fnmatchcase('123.txt','*.TXT'))
⑥addresses =[
'5000 A AAA FF',
'1000 B BBB',
'1000 c ccc',
'2000 D DDD NN',
'4234 E EEE NN',
]
⑦a=[addr for addr in addresses if match(addr,'*FF')]
print(a)
⑧b=[addr for addr in addresses if match(addr,'42[0-9][0-9]*NN*')] print(b)
①②演示了函数 fnmatch)的基本用法,可以匹配以.py 结尾的字符串,用法和函数 fnmatchcase)相似。
③④演示了函数 fnmatch)的匹配模式所采用的大小写区分规则和底层文件系统相同, 根据操作系统的不同而有所不同。
⑤使用函数 fnmatchcase()可以根据提供的大小写方式进行匹配。
⑥演示了在处理非文件名式的字符串时的作用,定义了保存一组联系地址的列表
addresses。
⑦⑧使用 match) 进行推导。
由此可见, fnmatch 所实现的匹配操作介乎于简单的字符串方法和正则表达式之间。如 果只想在处理数据时提供一种简单的机制以允许使用通配符,那么通常这都是合理的解决方 案。本实例执行后会输出:
False
True
True
False
11.1.4 文本模式匹配和查找
如果只是想要匹配简单的文字,只需使用内置模块string中的函数str.find)、str. endswith) 、str.startswith() 即可实现。例如在下面的实例文件jdanwenb.py 中,演示了使用内 置模块实现文本模式匹配和查找的过程。
实例11-5:查找字符串中字符
源码路径:下载包\daima\11\11-5
11.1.5 文本查找和替换
在 Python 程序中,如果只是想实现简单的文本替换功能,只需使用内置模块string 中的 函数 replace()即可。函数 replace() 的语法格式如下所示:
str.replace(old,new[,max])
● old: 将被替换的子字符串;
● new: 新字符串,用于替换old 子字符串;
●max: 可选字符串,替换不超过max 次。
函数 replace) 能够把字符串中的old (旧字符串)替换成new (新字符串),如果指定 第三个参数 max, 则替换不超过 max 次。例如在下面的实例文件tihuan.py中,演示了使用 函数 replace) 实现文本替换的过程。
实例11-6:使用函数 replace() 替换文本
源码路径:下载包\daima\11\11-6
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。