我正在尝试使用regex来标识以下格式的数据: XX天,XX小时,XX分钟(由于空格、逗号和复数,结构变化最小) 我希望看到一种高效的python方法来使用regex,这样我就可以得到与日、小时和分钟相关的数字。你知道吗
我尝试了以下方法:
matchingTime = "27 days, 21 hours, 23 minutes ago"
re.search('([0-9]{0,2}).*day.* ([0-9]+) .*hour.* ([0-9]+) .*minute.*',matchingTime)
对于上面的例子,它工作得很好,我分别得到了第1组、第2组和第3组的值。你知道吗
问题是,这两个领域中的任何一个都不一定存在
matchingTime = "21 hours, 23 minutes ago"
对于上述情况,它失败了。你知道吗
我知道我可以用try和excepts来完成它,但我希望找到一种简洁有效的方法。你知道吗
任何输入都会非常有用。很高兴对我的问题作进一步澄清。你知道吗
编辑:[0-9]{0,2}
对于days部分,只是尝试一些方法来解决这个问题。你知道吗
您可以使用正则表达式,例如:
regex101 demo
我使用
[^, ]*,? *
作为可选的逗号和空格,而不是使用.*
,这样就不会有太多回溯。你知道吗我还使用了命名的捕获组,并将每天/小时/分钟的整个组包装到一个非捕获组中,然后我将
?
标记为可选。每一组都相当相似:相关问题 更多 >
编程相关推荐