python带通配符的字符串匹配_python那些实用且不为人知的技巧

本文介绍了Python中一些实用但不为人熟知的字符串处理技巧,如使用re.split()进行复杂分割,str.startswith()和str.endswith()进行开头和结尾检查,fnmatch模块实现Shell通配符匹配,以及ljust(), rjust(), center()和format()进行字符串对齐。此外,还提到了heapq的nlargest()和nsmallest()获取集合中最大或最小元素,以及operator.itemgetter()对字典列表进行排序的方法。" 118097949,1418509,Springboot结合Spring Security实现JWT身份验证,"['Spring Security', 'JWT', '认证授权', 'Springboot集成', '过滤器']
摘要由CSDN通过智能技术生成

虽然使用python很多年,但是有些方法,还是没有掌握;最近仔细阅读了一本书,发现了一些实用不为人知的方法。

分割:
string 对象的 split() 方法只适应于非常简单的字符串分割情形, 它并不允许有多个分隔符或者是分隔符周围不确定的空格。当你需要更加灵活的切割字符串的时候,最好使用 re.split() 方法:

>>> line = 'asdf fjdk; afed, fjek,asdf, foo'
>>> import re
>>> re.split(r'[;,s]s*', line)
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']

开头或结尾匹配
检查字符串开头或结尾的一个简单方法是使用 str.startswith() 或者是 str.endswith() 方法。
这个方法中必须要输入一个元组作为参数。如果你恰巧有一个 list 或者 set 类型的选择项, 要确保传递参数前先调用 tuple() 将其转换为元组类型。比如:

>>> import os
>>> filenames = os.listdir('.')
>>> filenames
[ 'Makefile', 'foo.c', 'bar.py', 'spam.c', 'spam.h' ]
>>> [name for name in filenames if name.endswith(('.c', '.h')) ]
['foo.c', 'spam.c', 'spam.h'

用Shell通配符匹配字符串
你想使用 Unix Shell 中常用的通配符(比如 .py , Dat[0-9].csv 等)去匹配文本字符串

解决方案
fnmatch 模块提供了两个函数—— fnmatch() 和 fnmatchcase() ,可以用来实现这样的匹配。用法如下


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值