2015-12-12 26 views
0

我有一個txt文件,上述變化的日誌信息,會有一些細節:如何使用python驗證文本文件中的完整語法?

* Mon Jan 31 2012 raj sharma<[email protected]> - 1.4.5.6 
    - This is the change 

現在這個更改日誌將有一個具體標準爲:

-* day month date year name <email address inside brackets> - version numbr 

現在我要在python中構建一個方法,該方法應該根據上面的標準語法驗證用戶輸入的更改日誌的語法。那麼,我該如何製作可以驗證changelog.txt語法的函數呢?

回答

0

我會建議使用正則表達式匹配行並提取匹配組,並逐個驗證匹配組的內容。例如

#!/usr/bin/python 
import re 

line = '* Monday Jan 31 2012 Ram Sharma <Ram.Sharma @gmail.com> - 1.4.5.6' 

m = re.compile(r"^\* ([A-Za-z]+ [A-Za-z]+ [0-9]+ [0-9]+) (.*) <(.*@.*)> - ([0-9.]+)$") 
result = m.search(line) 
if result: 
     print result.lastindex 
     for i in range(result.lastindex+1): 
       print i, result.group(i) 

使用這段代碼,您可以提取日期,姓名,電子郵件和發佈版本是這樣的:

4 
0 * Monday Jan 31 2012 Ram Sharma <Ram.Sharma @gmail.com> - 1.4.5.6 
1 Monday Jan 31 2012 
2 Ram Sharma 
3 Ram.Sharma @gmail.com 
4 1.4.5.6 

您可以驗證result.group日期(1) ,result.group(3)中的電子郵件地址以及result.group(4)中的發行版本。希望這個方向有幫助。