在字符串中查找字符的索引位置

时间:2016-09-16 13:12:58

标签: python

我在一个存储区域拖网,路径看起来很像这样: storagearea / storage1 / ABC / ABCDEF1 / raw / 2013/05 / ABCFGM1

我不会总是知道今年是什么时候。我需要找到年度的起始指数位置

因此我正在寻找我在文件名中找到以下内容的地方(2010年,2011年,2012年,2013年,2014年等...)

我已按以下方式设置了一个列表:

list_ = ['2010', '2011','2012','2013','2014', '2015', '2016']

我可以找到它是否在文件名

if any(word in file for word in list_): 
    print 'Yahooo'

但是如何在绝对路径中找到年份的字符索引?

3 个答案:

答案 0 :(得分:1)

使用传统的循环,然后在找到匹配项时打印找到的单词的索引和break,而不是使用生成器表达式(具有自己的作用域):

list_ = ['2010', '2011','2012','2013','2014', '2015', '2016']
for word in list_:
    if word in file:
        print file.index(word)
        break

答案 1 :(得分:1)

我建议'|'使用>>> list_ = ['2010', '2011','2012','2013','2014', '2015', '2016'] >>> p = "|".join(list_) >>> p '2010|2011|2012|2013|2014|2015|2016' 作为分隔符span() group()这些年...

>>> filename = "storagearea/storage1/ABC/ABCDEF1/raw/2013/05/ABCFGM1"
>>> m = re.search(p, filename)
>>> m.group()
'2013'
>>> m.span()
(37, 41)

...然后使用regular expression查找匹配项,php artisan make:model YourNewModel SELECT TOP 1 * FROM Table WHERE [Total Qty Ordrered] > [Qty Available] ORDER BY [ORDER Number] 找到该匹配项的位置以及匹配的年份本身:

Laravel's built-in Auth Controllers

答案 2 :(得分:0)

Python string.index

string.index(s, sub[, start[, end]])¶

    Like find() but raise ValueError when the substring is not found.