我想替换"。"发生在我的字符串中的浮点数中,带有" dot"反之亦然。
示例:
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'
答案 0 :(得分:1)
你用" dot"替换整场比赛,而不仅仅是点。
我知道解决这个问题的两种方法:
re.sub(r'(?<=\d)\.(?=\d)',r"dot", t)
在这个解决方案中,你只是匹配点本身,但断言它前后有一个数字。
re.sub(r'(\d+)\.(\d+)',r"\1dot\2", t)
这里匹配整个浮动,但请记住捕获组中点之前和之后的部分。然后,您将替换字符串更改为&#34;第一个捕获组,然后是字符串&#39; dot&#39;,然后是第二个捕获组&#34;。