You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python正则实现仅将文本中十进制数字的逗号替换为小数点

问题原因

  1. 你在正则表达式和替换字符串中没有使用Python原始字符串标识r,\1会被Python解析为ASCII控制字符而非正则反向引用,这是你出现方块乱码的直接原因。
  2. 第一种错误写法完全搞反了匹配逻辑,你是在把「数字.数字」替换为「数字,数字」,和你的需求完全相反。
  3. 第三种写法的核心问题同样是缺少原始字符串标识,反向引用失效导致替换结果不符合预期。

正确实现

使用带原始字符串标识的正则即可,只会匹配前后都是数字的逗号进行替换,其余逗号不受影响:

import re
Data_preprocessing['tweet_without_stopwords'] = Data_preprocessing['tweet_without_stopwords'].apply(
    lambda x: re.sub(r"(\d+),(\d+)", r"\1.\2", str(x))
)

如果需要兼容带负号的小数(比如-123,45),可以使用更严谨的正则版本:

re.sub(r"(-?\d+),(\d+)", r"\1.\2", str(x))

内容的提问来源于stack exchange,提问作者kostya ivanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:36:03