字符串中的条件替换-Python

字符串中的条件替换-Python,python,conditional-statements,replace,Python,Conditional Statements,Replace,我对Python和编程非常陌生。我有一个包含测量值的文件,如下所示: 85.2147…85.2150…85.2152…85.2166…85.2180.85.2190 最后我想要的是: 85.2147 85.2150 85.2152 85.2166 85.2180 85.2190 我用的是什么 k = (j.replace('....', '\r')) l = (k.replace('...', '\r')) m = (l.replace('..', '\r')) 这是: 85.2147 85.

我对Python和编程非常陌生。我有一个包含测量值的文件,如下所示:

85.2147…85.2150…85.2152…85.2166…85.2180.85.2190

最后我想要的是:
85.2147
85.2150
85.2152
85.2166
85.2180
85.2190

我用的是什么

k = (j.replace('....', '\r'))
l = (k.replace('...', '\r'))
m = (l.replace('..', '\r'))
这是:

85.2147
85.2150
85.2152
85.2166
85.2180.85.2190

现在的问题是,我如何有条件地替换单点,A)如果后面没有数字;和B)如果该点后的数字与该点前的第6个数字(或第7个字符)相同。

您应该阅读并记录a,以帮助您解决这些问题。另外,最好记住,Python可以在交互模式下运行,以允许您非常快速地手工测试

>>> import re
>>> test = "85.2147....85.2150..85.2152..85.2166...85.2180.85.2190."
>>> target = re.compile(r'(\d+\.\d+)(\.+)')
>>> match = re.findall(target, test)
>>> match
[('85.2147', '....'), ('85.2150', '..'), ('85.2152', '..'), ('85.2166', '...'), ('85.2180', '.'), ('85.2190', '.')]
>>> res
['85.2147', '85.2150', '85.2152', '85.2166', '85.2180', '85.2190']
>>>

使用正则表达式模块
>>> import re
>>> string = '85.2147....85.2150..85.2152..85.2166...85.2180.85.2190.'
>>> result = re.findall('(\d+\.\d+)\.+',string)
>>> result
['85.2147', '85.2150', '85.2152', '85.2166', '85.2180', '85.2190']