Python 尝试使用正则表达式从脚本注释中提取日期和版本号
我正试图从脚本文件中的注释中提取信息。将文件作为输入后,我希望运行搜索,以以下形式提取信息: “版本:#.#” “创建日期:##/#/#/#####” 等等 我的一个问题是,版本号和日期并不总是采用这种格式。有时,它们可能看起来像: “版本#” “创建日期:##/#####” 评论中通常充满了大量的“#”,因此到目前为止我的正则表达式是: [\s\s]*(版本:?\s\d.?\d |创建日期:?\d+/\d+/\d{2,4}? 为了处理不同的场景(如我在上面写的场景),我正在尝试使它更健壮,我想解决的主要问题是:它只是拉取日期或版本,我知道这是由于管道(|),因为我对正则表达式不太了解,我不知道如何获取这两条信息。Python 尝试使用正则表达式从脚本注释中提取日期和版本号,python,regex,input,Python,Regex,Input,我正试图从脚本文件中的注释中提取信息。将文件作为输入后,我希望运行搜索,以以下形式提取信息: “版本:#.#” “创建日期:##/#/#/#####” 等等 我的一个问题是,版本号和日期并不总是采用这种格式。有时,它们可能看起来像: “版本#” “创建日期:##/#####” 评论中通常充满了大量的“#”,因此到目前为止我的正则表达式是: [\s\s]*(版本:?\s\d.?\d |创建日期:?\d+/\d+/\d{2,4}? 为了处理不同的场景(如我在上面写的场景),我正在尝试使它更健壮,我想
谢谢您的帮助!您可以使用这个正则表达式
Version:?\s*\S*|Date Created:?\s*\S*
^regex$
,这样你就可以找到一个完整的问题行。这使你的正则表达式通常更快,但肯定更具体import re
txt='''\
# Version: #.#"
# Date Created: ##/##/####"
etc.
One of my problems is that the version numbers and dates wont always be in that format. Sometimes, they may look like:
# Version #"
# Date Created: ##/####'''
print 'versions found:', re.findall(r'^\s*#+\s*Version:?\s*(.*)$', txt, re.M)
print 'dates found:', re.findall(r'^\s*#+\s* Date Created:?\s*(.*)$', txt, re.M)
印刷品:
versions found: ['#.#"', '#"']
dates found: ['##/##/####"', '##/####']
这是因为管道
|
操作符的意思是这个或那个
非常感谢!我想拆分正则表达式是最好的方法,再次感谢。