我试图看一个字符串是否包含某些文本,如果有的话,我一直在使用python的in
运算符,但我意识到它太严格了,基本上我有以下代码
通常会返回True
dynamic = "v23434"
filename = "v23434.jpg"
if dynamic in filename: return True
然而,如果我有
dynamic = "v23434-"
filename = "v23434.jpg"
然后它返回False,因为dynamic
末尾的破折号,所以我的问题是,有没有办法检查字符串文件名是否有字符串dynamic
,但在某种程度上它不一定是完美的匹配,只需要几个字符即可。
修改的
通过几个字符,我的意思是由动态的前3个字符组成的子字符串,所以如果我有
dynamic = "v23434-"
filename = "testingv23434.jpg"
然后它应该匹配,因为在"v23"
filename
答案 0 :(得分:3)
如果您只想测试搜索字词中的前三个字符,请使用
def test(dynamic, filename):
return dynamic[:3] in filename
答案 1 :(得分:1)
只需切掉一个字符串的前三个字符:
if dynamic[:3] in filename
答案 2 :(得分:1)
这段代码将帮助解决您的问题我正在寻找至少3个连续字符:
>>> dynamic = "v23434-"
>>> filename = "testingv23434.jpg"
>>> any( s in filename for s in [ dynamic[i:i+3] for i in range( 0, len(dynamic)-2 ) ] )
True
>>> filename = "testingv334.jpg"
>>> any( s in filename for s in [ dynamic[i:i+3] for i in range( 0, len(dynamic)-2 ) ] )
False
答案 3 :(得分:0)