gpt4 book ai didi

python - 在 Python 中编写此正则表达式的更好方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:23 25 4
gpt4 key购买 nike

一些字符串:

s = 'some text some text date may 04 at 05 AM some text some text'

我已经编写了正则表达式来从上面提取日期,如下所示:

m = re.search(r'date ([a-z]{3} [0-9]{2}) at ([0-9]{2}) ([P][M])|date ([a-z]{3} [0-9]{2}) at ([0-9]{2}) ([A][M])', s)

是否可以用更短的方式写这个正则表达式或者可以'|'字符可以用比这更好的方式使用吗?因为上述正则表达式仅在“AM”和“PM”部分不同。我只是觉得使用这个正则表达式不对。

最佳答案

你可以使用

date ([a-z]{3} \d{2}) at (\d{2}) ([PA]M)

参见 demo

比较您的 2 个备选方案:

date ([a-z]{3} [0-9]{2}) at ([0-9]{2}) ([P][M])
date ([a-z]{3} [0-9]{2}) at ([0-9]{2}) ([A][M])

请注意它们有多么相似。我们只需要为 PMAM 添加 1 个备选方案。这可以通过使用匹配 PA 的字符类 [PA] 来完成。

代替[0-9],您可以使用简写\d(它有点短:),然后做不要忘记使用 r'...') 将正则表达式声明为原始字符串。

请注意,我将使用不区分大小写的标志 re.I 与此模式(该模式将匹配 pmPM 然后) .

关于python - 在 Python 中编写此正则表达式的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31559496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com