如果在大海捞针

时间:2014-10-28 03:44:19

标签: python

我知道我能做到:

if 'hello' in 'hello world':

如果我有几根针(' .css',' .js',' .jpg',' .gif&#39 ;,' .png',' .com')我想检查其中任何一个是否在字符串中。

(注意:endswith在这种情况下不会这样做,它们可能不是后缀)

3 个答案:

答案 0 :(得分:5)

您可能会发现any有用:

haystack = 'hello world'
needles = ['.css', '.js', '.jpg', '.gif', '.png', '.com']
if any(needle in haystack for needle in needles):
    pass  # ...

答案 1 :(得分:2)

for needle in ['.css', '.js', '.jpg', '.gif', '.png', '.com']:
  if needle in haystack:
    return 'found'

答案 2 :(得分:1)

您可以将正则表达式用于"多重匹配":

import re
pat = r'(\.css|\.js|\.jpg|\.gif|\.png|\.com)'
files = ['file.css', 'file.exe', 'file.js', 'file.bat']
for f in files:
    if re.findall(pat, f):
        print f

<强>输出

file.css
file.js

请注意,此解决方案使您可以在任意不同数量的文件名上运行,并将其与多个不同的扩展名进行比较!