ad

《Python学习笔记 从入门到实战》_更了解Python的途径之一_11.1.3 实现字符串匹配处理

网友投稿 134 2023-11-07

【摘要】 本书摘自《Python学习笔记 从入门到实战》一书中第11章,第1节,由张学建编著。

11.1.3 实现字符串匹配处理

在计算机编程应用中,经常需要对某个字符串进行匹配处理,例如提取字符串中的数字、 大写字母、特殊符号等。在下面的内容中,将详细讲解在Python中实现字符串匹配处理的知识。

(1)函数 fnmatch()

在内置模块fnmatch中,函数fnmatch) 的功能是采用大小写区分规则和底层文件相同(根 据操作系统而区别)的模式进行匹配。其语法格式如下所示:

fnmatch.fnmatch(name,pattern)

《Python学习笔记 从入门到实战》_更了解Python的途径之一_11.1.3 实现字符串匹配处理

上述语法格式的功能是测试 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小时内删除侵权内容。

上一篇:跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_2.5.7 Const 的公有和私有设置
下一篇:《Python学习笔记 从入门到实战》_更了解Python的途径之一_7.5.2 类属性和实例属性
相关文章
×