2011-11-16 31 views
0

我正在处理一个文件中的很多行,在这个文件中我想要检索某个可能长度不同的特定元素,而且它的两侧没有相同的字符。Python:当索引是动态的时候如何抓住一个子字符串

下面是一个例子。我希望检索每个符合“OOO_”启动项:

blah blah OOO_128934(blah blah 
blah bloop OOO_231 bloop bloop 
beep OOO_421398234beep beep 

解决方案有/无使用re模块是值得赞赏!

回答

3

那么也许:

text = """ 
blah blah OOO_128934(blah blah 
blah bloop OOO_231 bloop bloop 
beep OOO_421398234beep beep 
""" 

import re 

print re.findall(r'OOO_\d+', text) 
>>> ['OOO_128934', 'OOO_231', 'OOO_421398234'] 
+0

完美!非常感谢你。 – toofly

+0

欢迎您@toofly –

1
>>> s = "blah bloop OOO_231 bloop bloop" 
>>> next(x for x in s.split() if x.startswith("OOO_")) 
'OOO_231' 
+0

很好的建议。但我有一个预感,他希望第一个是“OOO_128934”,最后一个是“OOO_421398234”。 –

+0

这是一个很好的建议,但弗雷德拉森是对的 – toofly