在字符串的开头或结尾处做文本匹配

问题:

我们需要在字符串的开头或结尾处按照指定的文本模式做检查,例如检查文件的扩展名、URL协议类型等。

 

解决方案:

有一种简单的方法可用来检查字符串的开头或结尾,只要使用str.startswith()和str.endswith()方法就可以了

 1 filename = 'spam.txt'
 2 result = filename.endswith('.txt')
 3 print(result)
 4 
 5 result1 = filename.startswith('file:')
 6 print(result1)
 7 
 8 url = "http://www.python.org"
 9 result2 = url.startswith('http:')
10 print(result2)

运行结果:

True
False
True

如果需要同时针对多个选项做检查,只需给startswith()和endswith()提供包含可能选项的元组即可:

import os

filenames = os.listdir('.')

print(filenames)

result = [name for name in filenames if name.endswith(('.py','.txt'))]
print(result)

result1 = any(name.endswith('.py') for name in filenames)
print(result1)

结果:

['2_2_1.py', '11.txt', '2_1.py', '2_2.py']
['2_2_1.py', '11.txt', '2_1.py', '2_2.py']
True

 

posted @ 2020-07-20 14:17  胸怀丶若谷  阅读(421)  评论(0)    收藏  举报