使用Python的正则表达式用" dot"替换浮点数的点。

时间:2018-02-28 09:37:35

标签: python-3.x

我想替换"。"发生在我的字符串中的浮点数中,带有" 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'

1 个答案:

答案 0 :(得分:1)

你用" dot"替换整场比赛,而不仅仅是点。

我知道解决这个问题的两种方法:

1。积极的外观断言:

re.sub(r'(?<=\d)\.(?=\d)',r"dot", t)

在这个解决方案中,你只是匹配点本身,但断言它前后有一个数字。

2。捕获数字并替换为捕获组和点:

re.sub(r'(\d+)\.(\d+)',r"\1dot\2", t)

这里匹配整个浮动,但请记住捕获组中点之前和之后的部分。然后,您将替换字符串更改为&#34;第一个捕获组,然后是字符串&#39; dot&#39;,然后是第二个捕获组&#34;。