Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式只匹配数字,不匹配撇号_C#_Regex - Fatal编程技术网

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个或更多点时会出现故障