C# 正则表达式只匹配数字,不匹配撇号
我只想匹配以下字符串中的数字C# 正则表达式只匹配数字,不匹配撇号,c#,regex,C#,Regex,我只想匹配以下字符串中的数字 String : "40’000" Match : "40000" 基本上忽略撇号 我在用C#,以防万一。 不能使用任何C#方法,只需要使用正则表达式。像这样替换它会替换所有字符号 string input = "40’000"; string result = Regex.Replace(input, @"[^\d]", ""); 像这样替换它将替换所有字符excpet编号 string input = "40’000"; string result = Re
String : "40’000"
Match : "40000"
基本上忽略撇号
我在用C#,以防万一。
不能使用任何C#方法,只需要使用正则表达式。像这样替换它会替换所有字符号
string input = "40’000";
string result = Regex.Replace(input, @"[^\d]", "");
像这样替换它将替换所有字符excpet编号
string input = "40’000";
string result = Regex.Replace(input, @"[^\d]", "");
不要让你的生活复杂化,使用正则表达式
string s = "40'000";
string replaced = Regex.Replace(s, @"\D", "");
不要让你的生活复杂化,使用正则表达式
string s = "40'000";
string replaced = Regex.Replace(s, @"\D", "");
既然你说了,;我只想选数字,不选正则表达式怎么样
var s = "40’000";
var result = new string(s.Where(char.IsDigit).ToArray());
Console.WriteLine(result); // 40000
既然你说了,;我只想选数字,不选正则表达式怎么样
var s = "40’000";
var result = new string(s.Where(char.IsDigit).ToArray());
Console.WriteLine(result); // 40000
我建议使用正则表达式查找特殊字符而不是数字,然后替换为
'
所以一个简单的(?=\S)\D
就足够了,(?=\S)
忽略数字末尾的空格
我建议使用正则表达式查找特殊字符而不是数字,然后用
'
替换
所以一个简单的(?=\S)\D
就足够了,(?=\S)
忽略数字末尾的空格
像这样替换它会替换所有字符和点数
string input = "40’000";
string result = Regex.Replace(input, @"[^\d^.]", "");
像这样替换它会替换所有字符和点
string input = "40’000";
string result = Regex.Replace(input, @"[^\d^.]", "");
只有没有撇号?比如
40'-000
,它应该是40000
或者40-000
?如果可能的话,我只想选择数字,否则忽略撇号就可以了40000
,如果源字符串只包含那个数字(带或不带撇号)-可能最好使用Convert.ToInt32
或Int32.TryParse
而不是正则表达式。是否仅使用不带撇号的表达式?比如40'-000
,它应该是40000
或者40-000
?如果可能的话,我只想选择数字,否则忽略撇号就可以了40000
,如果源字符串只包含那个数字(带或不带撇号)-可能最好使用Convert.ToInt32
或Int32.TryParse
而不是正则表达式。建议不错,但我只能使用regex@ShankyJain这有什么特别的原因吗?是的,代码还处理名称等多个事情,我们从数据库中获取正则表达式,然后将其应用到我们得到的字符串上。此外,如果我得到400000.00,它将解析为4000000,而不是40000个好建议,但我只能使用regex@ShankyJain这有什么特别的原因吗?是的,代码还处理名称等多个事情,我们从数据库中获取正则表达式,然后将其应用到我们得到的字符串上。此外,如果我得到400000.00,它将解析为4000000,而不是400000040000@SonerGönül这样更好吗?既然\D=[^0-9],为什么要放[\D]?我的意思是,既然已经是单个字符,为什么还要将其指定为单个字符?@AnshulRai,因为我想删除任何非数字字符…?我明白了,我的问题是,既然\D已经是单个字符,[]
是一个字符类,也可以匹配单个字符。因此,当您输入[\D]时,您的意思是从character类中给定的单个字符中提取单个字符。括号是多余的,`“\D”足以匹配。@AnshulRai哦,对了!我还不是正则表达式大师,谢谢@SonerGönül这样更好吗?既然\D=[^0-9],为什么要放[\D]?我的意思是,既然已经是单个字符,为什么还要将其指定为单个字符?@AnshulRai,因为我想删除任何非数字字符…?我明白了,我的问题是,既然\D已经是单个字符,[]
是一个字符类,也可以匹配单个字符。因此,当您输入[\D]时,您的意思是从character类中给定的单个字符中提取单个字符。括号是多余的,`“\D”足以匹配。@AnshulRai哦,对了!我还不是正则表达式大师,谢谢!我的意思是回答:stringinput=“40'000.00”;字符串结果=Regex.Replace(输入,@“[^\d.]”,“”)代码>但出现两个或更多点时会出现故障。我的意思是:string input=“40'000.00”;字符串结果=Regex.Replace(输入,@“[^\d.]”,“”)代码>但出现2个或更多点时会出现故障