Regex只匹配数字,不匹配撇号

本文关键字:不匹配 数字 Regex | 更新日期: 2023-09-27 17:59:30

我只想匹配以下字符串中的数字

String : "40’000"
Match : "40000"

基本上字符串忽略撇号。

我正在使用C#,以备不时之需。不能使用任何C#方法,只需要使用Regex。

Regex只匹配数字,不匹配撇号

像这样替换它替换了所有字符不包括数字

string input = "40’000";
string result = Regex.Replace(input, @"[^'d]", "");

既然你说了我只想提取数字,没有regex怎么样?

var s = "40’000";
var result = new string(s.Where(char.IsDigit).ToArray());
Console.WriteLine(result); // 40000 

我建议使用regex查找特殊字符而不是数字,然后用''替换。

所以一个简单的(?='S)'D就足够了,(?='S)就是忽略数字末尾的空白。

演示

像这样替换它替换了所有字符交换编号和点

string input = "40’000";
string result = Regex.Replace(input, @"[^'d^.]", "");

不要让你的生活复杂化,使用Regex。替换

string s = "40'000";
string replaced = Regex.Replace(s, @"'D", "");