gpt4 book ai didi

python - 替换字符串中的货币值时,Python 中的 re.sub() 并不总是有效

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

我在 Python 中构建了一个“货币标记器”,它可以识别所有货币表达式并将它们替换为标记字符串。

例子,
替换 "I have $20 in my pocket"
"I have <Currency>$20</Currency> in my pocket"

其中一项任务要求我用标记的字符串替换标识为 Currency 的字符串。我正在使用 re.sub()做这个。

它适用于除“$4.4B”或“$4.4M”形式之外的所有形式的字符串。

我尝试在我的 python 控制台中运行简单示例,发现 re.sub()与具有混合美元模式的模式不一致。

例如,

>>> text = "I have #20 in my pocket"
>>> re.sub("#20", "$20", text)
'I have $20 in my pocket'
>>> text = "I have $20 in my pocket"
>>> re.sub("$20", "#20", text)
'I have $20 in my pocket'

在上面的示例中,您看到当我尝试用“#20”替换“$20”时它不起作用(在第二种情况下)。

当然,我们将不胜感激任何帮助。出现了一个非常愚蠢的错误,并因此拖延了主要工作。

最佳答案

$ 是一个特殊字符。所以如果你想替换它,请使用

 re.sub(r"\$20", "#20", text)

^^

你将不得不转义它。同时使用r模式来避免转义问题。

$ 表示字符串结尾。因此您的正则表达式无效。

关于python - 替换字符串中的货币值时,Python 中的 re.sub() 并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32515853/

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