回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>作为一项任务,我面临的问题是:</p>
<blockquote>
<p>Given an input string similar to the below, craft a regular expression
pattern to match and extract the date, time, and temperature in groups
and return this pattern. Samples given below.</p>
</blockquote>
<pre><code>Date: 12/31/1999 Time: 11:59 p.m. Temperature: 44 F
Date: 01/01/2000 Time: 12:01 a.m. Temperature: 5.2 C
</code></pre>
<p>所以我打开了regex101和<a href="https://regex101.com/r/U1IrPD/1" rel="nofollow noreferrer">created this pattern which tests correctly</a>:</p>
<pre><code>def q6(strng):
import re
pattern = '((?<=Date: )\d{1,2}\/\d{1,2}\/\d{4})|((?<=Time: )?\d{1,2}:\d{1,2} ?[pPaA].?[mM].?)|((?<=Temperature: )\d{1,3}.?\d{1,3} ?[CF])'
print(re.findall(pattern, strng))
return pattern
q6("Date: 12/31/1999 Time: 11:59 p.m. Temperature: 44 F")
q6("Date: 01/01/2000 Time: 12:01 a.m. Temperature: 5.2 C")
</code></pre>
<p>但在python中,该模式似乎给出了一个有缺陷的答案:</p>
<pre><code>[('12/31/1999', '', ''), ('', '11:59 p.m.', ''), ('', '', '44 F')]
[('01/01/2000', '', ''), ('', '12:01 a.m.', ''), ('', '', '5.2 C')]
</code></pre>
<p>您可以在返回的元组中看到额外的空项。该问题将通过程序进行评分,如果您注意到该问题要求返回模式,而不是结果,则不可能进行修剪</p>
<p>我只是使用了错误的正则表达式匹配函数,还是我做错了什么</p>