以下是前input string examples名:

#example 1.1
colloquial_hour = "Hola nos vemos a las diez y veinte a m, ten en cuenta que al amanecer tendremos que estar despiertos, porque debemos estar alli a eso de nueve a m o las diez y cuarto a m"
#example 1.2
colloquial_hour = "A mi me parece entre las 10 15 am y las 11 a m, o a las 15 a m aunque quizas a medianoche este bien a eso de las 00:00 a m"
#example 1.3
colloquial_hour = "Puede que a las 10 am. Hay 10 a medias, a m mmm... creo que en 10 estarian para terminar a las 11:00 hs a m 11:59 a m"
#example 1.4
colloquial_hour = "Amediados a mediados del 30 antes de y dia; me parace que hay que estar en casa. Medianamente a, mediados de las 05 a m o cerca de 6 a m."

我已经try 了一个简单的替换,但我认为必须用正则模式进一步限制 case ,这样就不会进行不需要的替换……

colloquial_hour = colloquial_hour.replace('a m', 'am ')

,并能够获得此字符串作为输出...

这些例子中每一个都有correct output:

#example 1.1
colloquial_hour = "Hola nos vemos a las diez y veinte am, ten en cuenta que al amanecer tendremos que estar despiertos, porque debemos estar alli a eso de nueve am o las diez y cuarto am"
#example 1.2
colloquial_hour = "A mi me parece entre las 10 15 am y las 11 am, o a las 15 am aunque quizas a medianoche este bien a eso de las 00:00 am"
#example 1.3
colloquial_hour = "Puede que a las 10 am. Hay 10 a medias, a m mmm... creo que en 10 estarian para terminar a las 11:00 hs am 11:59 am"
#example 1.4
colloquial_hour = "Amediados a mediados del 30 antes de y dia; me parace que hay que estar en casa. Medianamente a, mediados de las 05 am o cerca de 6 am."

在本例中,伪模式为: 有些数字"a m" to replace with the string "am"有一个或多个空格、句点、逗号或直接位于字符串末尾

还应考虑这样的情况,其中可能存在不完整的书面时间表,在该时间表之前可能有":"" :"": "" hs""hs""hs "" h.s. ""h.s.""h.s. "" h.s""h.s""h.s ",例如,

input_t = "a las 12: a m"
output = "a las 12: am"

input_t = "a las 12 : a m"
output = "a las 12 : am"

input_t = "a las 12 hs a m"
output = "a las 12 hs am"

input_t = "a las 12:hs a m"
output = "a las 12:hs am"

input_t = "a las 12: hs a m"
output = "a las 12: hs am"

input_t = "a las 12hsa m"
output = "a las 12hs am"

input_t = "a las 12h.sa m"
output = "a las 12h.s am"

input_t = "a las 12 h.sa m"
output = "a las 12 h.s am"

input_t = "a las 12 h.s.a m"
output = "a las 12 h.s. am"

推荐答案

对于第一部分,我制作了这个正则表达式:

out = re.sub(r"([0-9][0-9]\W)a m(\W|\b)", r"\1am\2", colloquial_hour)

它将"am"改为"am",保留了之前和之后的任何内容.

对于"hs"或"hs",我这样做:

out = re.sub(r"(hs|h.s)(\.)?\W*a m(\W|\b)", r"\1\2 am\3", out)

它会在"a m"之前搜索"hs"、"hs".您可以组合这两个正则表达式,它们非常相似,或者按顺序使用它们.

如果有什么问题,请告诉我.

Python相关问答推荐

抓取rotowire MLB球员新闻并使用Python形成表格

更改键盘按钮进入'

Telethon加入私有频道

什么是最好的方法来切割一个相框到一个面具的第一个实例?

改进大型数据集的框架性能

如何并行化/加速并行numba代码?

字符串合并语法在哪里记录

Python导入某些库时非法指令(核心转储)(beautifulsoup4."" yfinance)

巨 Python :逆向猜谜游戏

Odoo16:模板中使用的docs变量在哪里定义?

如何在Python Pandas中填充外部连接后的列中填充DDL值

如何在FastAPI中替换Pydantic的constr,以便在BaseModel之外使用?'

数据框,如果值在范围内,则获取范围和

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?

启动线程时,Python键盘模块冻结/不工作

正在try 让Python读取特定的CSV文件

如何在PYTHON中向单元测试S Side_Effect发送额外参数?

高效地计算数字数组中三行上三个点之间的Angular

通过对列的其余部分进行采样,在Polars DataFrame中填充_null`?

有什么方法可以在不对多索引DataFrame的列进行排序的情况下避免词法排序警告吗?