gpt4 book ai didi

python - 设置正则表达式模式,如果所述模式在字符串中得到验证,则其中的一部分被另一个子字符串替换

转载 作者:行者123 更新时间:2023-12-05 01:03:49 25 4
gpt4 key购买 nike

如何修复这个正则表达式,以便通过这些输入字符串我得到这些输出...

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

输入字符串示例...

#example 1.1
colloquial_hour = "Cerca de las 2: hs a m, hay que salir antes de esas hs a m"
#example 1.2
colloquial_hour = "A medida que avance cerca de la media noche 12: 04 hs a m. Deben ir a las 15 hs a m."
#example 1.3
colloquial_hour = "A mmm... cerca de las 12: h.s a m, hay que salir antes de esas h.s. a m"
#example 1.4
colloquial_hour = "A medida que avance cerca de las 12:04 hs. a m. Deben ir a las 15 h.s a m."

正确的输出:

#correct output for example 1.1
"Cerca de las 2: hs am, hay que salir antes de esas hs a m"
#correct output for example 1.2
"A medida que avance cerca de la media noche 12: 04 hs am. Deben ir a las 15 hs am."
#correct output for example 1.3
"A mmm... cerca de las 12: h.s am, hay que salir antes de esas h.s. a m"
#correct output for example 1.4
"A medida que avance cerca de las 12:04 hs. am. Deben ir a las 15 h.s am."

逻辑应该起作用,su 将执行一个数值,然后 "a m""a m" 子字符串替换为该字符串 "am" 在原始字符串中。

这些将是您必须将子字符串“a m”替换为“am”的所有可能情况

X a m
X: a m
X: hs a m
X: h.s. a m
X: h.s a m
X: hs. a m
X: a m
X : hs a m
X : h.s. a m
X : h.s a m
X : hs. a m
X hs a m
X h.s. a m
X h.s a m
X hs. a m

#where "X" is a numerical value ("1", "2", "3", "4", "5", "6", ... )
#in all these cases, in which this pattern is met, "a m" must be replaced by "am"

最佳答案

您可以使用正则表达式进行搜索:

(\d\W+)(h\.?s\.?\s+)?a\s+m\b

并替换为:

\1\2am

RegEx Demo

正则表达式详细信息:

  • (\d\W+):在捕获组#1中匹配一个数字后跟1+个非单词字符
  • (h\.?s\.?\s+)?:匹配 h 后跟 s,后面带有可选的点。这个可选组是捕获组#2
  • a\s+m\b:匹配 a 后跟 1+ 个空格,然后匹配 m 与单词边界

关于python - 设置正则表达式模式,如果所述模式在字符串中得到验证,则其中的一部分被另一个子字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73377762/

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