Python 3.x 正则表达式使用Python将浮点数替换为;点“;
我想将字符串中浮点数中出现的“.”替换为“点”,反之亦然 例如:Python 3.x 正则表达式使用Python将浮点数替换为;点“;,python-3.x,Python 3.x,我想将字符串中浮点数中出现的“.”替换为“点”,反之亦然 例如: t=' I am coder. I work in Google. I earn 98748.85' Expected output: ' I am coder. I work in Google. I earn 98748dot85' Then convert again: ' I am coder. I work in Google. I earn 98748.85' 我的代码: import re re.sub(r'\
t=' I am coder. I work in Google. I earn 98748.85'
Expected output: ' I am coder. I work in Google. I earn 98748dot85'
Then convert again: ' I am coder. I work in Google. I earn 98748.85'
我的代码:
import re
re.sub(r'\d+\.\d+',r"dot", t)
output: ' I am coder. I work in Google. I earn dot'
你要用“点”替换整个匹配,而不仅仅是点 我知道两种解决方法: 1.正面环视断言:
在这里,您将匹配整个浮点,但请记住捕获组中点之前和之后的部分。然后将替换字符串更改为“第一个捕获组,然后是字符串“点”,然后是第二个捕获组”。谢谢。这对我有用。你的意思是说,对于.85,它不起作用?是的,这些建议不起作用。你也想要34块吗。要工作吗?如果第一个数字是可选的,那么您可以删除它,即
r'\.(?=\d)
或r'\.(\d+)
。我的意思是:它应该适用于所有情况,如85.85、85.0、0.85、.85等等。。代码应该是通用的。你试过我的建议吗?它们适用于您列出的所有案例(但不适用于34.
)
re.sub(r'(?<=\d)\.(?=\d)',r"dot", t)
re.sub(r'(\d+)\.(\d+)',r"\1dot\2", t)