我尝试编写正则表达式,将'.'
替换为'. '
。
然而,它会将'2.5'
等十进制数字拆分为'2. 5'
。
在没有分隔十进制数的情况下,有没有这样做?这就是我所拥有的:
re.sub('(?![0-9]+)(\.)(?<![0-9])', '. ', some_string)
答案 0 :(得分:3)
你错放了预见和 look-behind :
应该是:
re.sub('(?<![0-9])[.](?![0-9])', '. ', some_string)
答案 1 :(得分:2)
你的外表看起来方向错误:
re.sub('(?<![0-9])\.(?![0-9])', '. ', some_string)
在.
前面,你想看看后面后面没有数字。在.
之后,您希望提前,接下来没有数字。检查多个数字(使用+
)并没有什么区别。