gpt4 book ai didi

python - 如何删除像 July 1, 2019 这样的字符串

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

我有一个大字符串,我想从中删除所有日期字符串子字符串。根据约束,日期字符串都遵循以下格式:

月字符串日、年(例如:2018 年 9 月 1 日)

假设我的字符串是:

bad_s = "天气很好。2018 年 9 月 1 日,2017 年 8 月 2 日我笑得很开心"

我要回去good_s = "天气很好。我笑得很开心"

在 Python 中有没有简单的方法来做到这一点?

这是我尝试过的:

reg_ex = """/[\'January\'\,\ \'February\'\,\ \'March\'\,\ \'April\'\,\ \'May\'\,\ \'June\'\,\ \'July\'\,\ \'August\'\,\ \'September\'\,\ \'October\'\,\ \'November\'\,\ \'December\'](?:\^\(\[1\-9\]\|\[12\]\\d\|3\[0\-q\]\)\$)/"""
replaced = re.sub(reg_ex, bad_s, "")

但是,这并不能取代我想要的。我最终还是得到了 bad_s

编辑:如果它让任何人都更容易,这里有一个 12 个月的列表,所以你不必写它们:months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']

最佳答案

像这样?

(january|february|march|april|may|june|july|august|september|octorber|november|december) ([1-9]|[1-2]\d|3[01]), \d{4}

只是不要忘记 /i 标志或任何 Python 等价物。

请注意,这不关心一个月有多少天,所以 2017 年 2 月 31 日 将匹配,它也不关心闰年。此正则表达式是匹配器而不是验证器。

如果您希望它更通用并完全忽略日期验证,那么这会起作用:

(january|february|march|april|may|june|july|august|september|octorber|november|december) \d+, \d+

https://regex101.com/r/zVbb0v/5

关于python - 如何删除像 July 1, 2019 这样的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57483608/

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