2016-02-29 32 views
-4

我必須在文件中搜索s="xyz-123." s。 s從一些其他的代碼來如何搜索文件中的字符串

import re 
s="xyz-123." # This will come from some other code 

f=open("\path","r") 
searched_item = re.findall(r's[-]+?[0-9a-zA-Z-]+[-]+[a-zA-Z0-9]+[.]+[a-zA-Z0-9]+[.]+[a-zA-Z0-9]+', f.read()) 
+3

問題是什麼? – gtlambert

+0

我必須搜索s =「xyz-123」。 s在一個文件中。 s選自一些其他代碼 – shankar

+0

文件內容sosreport-vlmanutslab1.123-20160229014706-74c1.tar.xz sosreport-vlmanutslab1.123-20160229014706-74c1.tar.xz.md5 sosreport-vlmanutslab1-20160227083027-4abd來.tar.xz sosreport-vlmanutslab1-20160227083027-4abd.tar.xz.md5 sosreport-vlmanutslab1-20160229024320-3738.tar.xz sosreport-vlmanutslab1-20160229024320-3738.tar.xz.md5 sosreport -vlmanutslab 1.3-12156812661-20160227081447-dbea.tar.xz sosreport-vlmanutslab1.3-12156812661-20160227081447-dbea.tar.xz.md5 – shankar

回答

1

如果s是一個固定的字符串那麼這將是簡單的使用字符串find而非涉及regex

def findall(p, s): 
    '''Yields all the positions of 
    the pattern p in the string s.''' 
    i = s.find(p) 
    while i != -1: 
     yield i 
     i = s.find(p, i+1) 

import re 
s="xyz-123." # This will come from some other code 
f=open("\path","r") 
file_content = f.read() 
for match_index in findall(s, file_content): 
    print match_index