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

如何编写正则表达式,移除字符串中除逗号、减号外的非数字?

移除非数字字符(保留逗号和减号)的正则表达式解决方案

需求说明

需要移除字符串中所有非数字字符,但必须保留逗号(,)和减号(-),对应示例如下:

  • 'Euro 16.000' → '16000'(点号属于非保留字符,被移除)
  • 'Euro 16,00' → '16,00'(逗号保留)
  • 'Euro -16,00' → '-16,00'(减号和逗号均保留)

正则表达式

使用反向字符集匹配所有需要移除的字符,表达式为:
[^0-9,-]

表达式解释

  • [^...]:反向匹配规则,即匹配任何不在括号内的字符
  • 0-9:匹配0到9的所有数字
  • , 和 -:明确指定需要保留的符号,因此不会被匹配和移除

代码示例

JavaScript 实现

// 处理带减号和逗号的字符串
const str1 = 'Euro -16,00';
const result1 = str1.replace(/[^0-9,-]/g, '');
console.log(result1); // 输出: "-16,00"

// 处理带点号的字符串
const str2 = 'Euro 16.000';
const result2 = str2.replace(/[^0-9,-]/g, '');
console.log(result2); // 输出: "16000"

Python 实现

import re

# 处理带逗号的字符串
str1 = 'Euro 16,00'
result1 = re.sub(r'[^0-9,-]', '', str1)
print(result1) # 输出: "16,00"

# 处理带点号的字符串
str2 = 'Euro 16.000'
result2 = re.sub(r'[^0-9,-]', '', str2)
print(result2) # 输出: "16000"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:55:27