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

如何使用Java正则表达式将字符串中的整数、浮点数替换为带单引号的形式

正则表达式实现数值包裹单引号方案

核心匹配规则

利用正则分组捕获特性,定位等号后的整数/浮点数,替换时直接引用捕获的数值加单引号包裹即可:

  • 正则匹配式:=(\d+(?:\.\d+)?)
    • = 作为定位符匹配数值前的等号,避免误匹配其他位置的数字
    • 外层()为捕获分组1,存储匹配到的完整数值
    • \d+ 匹配1位及以上的整数部分
    • (?:\.\d+)? 匹配可选的小数部分,?:标识该内层括号不作为独立捕获分组,避免干扰外层数值捕获
  • 替换模板:='$1'
    • 保留原等号,用单引号包裹捕获分组1的数值内容

多语言实现示例

  • JavaScript 示例
const originStr = "Key1=a,Key2=2,Key3=999.6,Key4=8888,Key5=true";
const result = originStr.replace(/=(\d+(?:\.\d+)?)/g, "='$1'");
// 输出结果:Key1=a,Key2='2',Key3='999.6',Key4='8888',Key5=true
  • Python 示例
import re
origin_str = "Key1=a,Key2=2,Key3=999.6,Key4=8888,Key5=true"
result = re.sub(r"=(\d+(?:\.\d+)?)", r"='\1'", origin_str)
# 输出结果:Key1=a,Key2='2',Key3='999.6',Key4='8888',Key5=true
  • Java 示例
public class ReplaceTest {
    public static void main(String[] args) {
        String originStr = "Key1=a,Key2=2,Key3=999.6,Key4=8888,Key5=true";
        String result = originStr.replaceAll("=(\\d+(?:\\.\\d+)?)", "='$1'");
        // 输出结果:Key1=a,Key2='2',Key3='999.6',Key4='8888',Key5=true
    }
}

扩展说明

如果需要支持负数匹配,把正则调整为=(-?\d+(?:\.\d+)?)即可,兼容负号开头的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:06:05