正则表达式是最好的方法吗?

时间:2015-11-10 12:00:41

标签: python regex

我希望匹配列表中的项目并将该项目放入变量中。下面是我到目前为止所做的,但目前我不知道如何创建正则表达式我需要匹配只有1项,我不知道这是否是最好的方法。我正在尝试将列表中的项目与' / site-packages'匹配。最后。

测试数据(网站输出)

['/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/site-python', '/Library/Python/2.7/site-packages']

代码

import site
import re
sites = site.getsitepackages()
print sites
site = re.compile('*/site-packages')

for item in sites:
    m = site.search(item)
    if m:
        print m

1 个答案:

答案 0 :(得分:5)

在这种情况下,您还可以在列表推导中使用字符串in运算符

m = [i for i in sites if r'/site-packages' in i]

同样,您可以使用endswith

m = [i for i in sites if i.endswith(r'/site-packages')]

修改
要在列表理解执行后获得最小元素(按长度),您可以执行

min(m, key=len)