如何使用python验证文本文件中的完整语法?

时间:2015-12-12 14:48:59

标签: python validation

我有一个.txt文件,其中包含更改日志信息,会有一些详细信息:

* Mon Jan 31 2012 raj sharma<john.doe@gmail.com> - 1.4.5.6
  - This is the change

现在,此更改日志将具有以下特定标准:

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

现在我必须在python中构造一个方法,该方法将验证用户根据上述标准语法输入的更改日志的语法。那么,我该如何制作可以验证changelog.txt语法的函数?

1 个答案:

答案 0 :(得分: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)中验证发布版本。希望这个方向有所帮助。