<p>首先,您可以在regex查询中指定一个量词,因此如果您想要4个数字,您不需要<code>[0-9][0-9][0-9][0-9]</code>,但可以使用<code>[0-9]{4}</code>。要捕获表达式,请将其包装在圆括号中<code>value=([0-9]{4})</code>将只提供数字</p>
<p>如果你想使用<code>re.sub</code>,你只需要给它一个模式,一个替换字符串和你的输入字符串,例如<code>re.sub(pattern, replacement, string)</code></p>
<p>因此:</p>
<pre><code>import re
txt = """ReportDate=03/24/2019, TimeWindowStart=18:00:00, TimeWindowEnd=20:59:59
Date, TimeWindowStart, TimeWindowEnd, Report-20190323_210000
Date, TimeWindowStart, TimeWindowEnd, Report-20190323_210000
Date, TimeWindowStart, TimeWindowEnd, Report-20190323_210000
Date, TimeWindowStart, TimeWindowEnd, Report-20190323_210000
Date, TimeWindowStart, TimeWindowEnd, Report-20190323_210000
Date, TimeWindowStart, TimeWindowEnd, Report-20190323_210000
Date, TimeWindowStart, TimeWindowEnd, Report-20190323_210000
"""
pattern_date = 'ReportDate=([0-9]{2}/[0-9]{2}/[0-9]{4})'
report_date = re.findall(pattern_date, txt)[0]
pattern_time_start = 'TimeWindowStart=([0-9]{2}:[0-9]{2}:[0-9]{2})'
start_time = re.findall(pattern_time_start, txt)[0]
pattern_time_end = 'TimeWindowEnd=([0-9]{2}:[0-9]{2}:[0-9]{2})'
end_time = re.findall(pattern_time_end, txt)[0]
splitted = txt.split('\n') # Split the txt so that we skip the first line
txt2 = '\n'.join(splitted[1:]) # text to perform the sub
# substitution of your values
txt2 = re.sub('Date', report_date, txt2)
txt2 = re.sub('TimeWindowStart', start_time, txt2)
txt2 = re.sub('TimeWindowEnd', end_time, txt2)
txt_final = splitted[0] + '\n' + txt2
print(txt_final)
</code></pre>
<p>输出:</p>
<pre><code>ReportDate=03/24/2019, TimeWindowStart=18:00:00, TimeWindowEnd=20:59:59
03/24/2019, 18:00:00, 20:59:59, Report-20190323_210000
03/24/2019, 18:00:00, 20:59:59, Report-20190323_210000
03/24/2019, 18:00:00, 20:59:59, Report-20190323_210000
03/24/2019, 18:00:00, 20:59:59, Report-20190323_210000
03/24/2019, 18:00:00, 20:59:59, Report-20190323_210000
03/24/2019, 18:00:00, 20:59:59, Report-20190323_210000
03/24/2019, 18:00:00, 20:59:59, Report-20190323_210000
</code></pre>