C# 使用正则表达式和c从字符串中获取数字部分#
有人想告诉我如何使用c#从这个字符串中得到整数部分吗 我一直在使用类似的东西,但没有让它正常工作C# 使用正则表达式和c从字符串中获取数字部分#,c#,regex,C#,Regex,有人想告诉我如何使用c#从这个字符串中得到整数部分吗 我一直在使用类似的东西,但没有让它正常工作 var getNumeric = new Regex(".*([0-9]+)"); 假设输入中只有一个数字,则表达式可以像\d+一样简单。仍然在这种假设下,对结果匹配使用ToString,将为您提供所需的内容 var regex = Regex.Match("/{localLink:1301}", @"\d+"); var result = regex.ToString(); 你的*太贪婪了。您
var getNumeric = new Regex(".*([0-9]+)");
假设输入中只有一个数字,则表达式可以像
\d+
一样简单。仍然在这种假设下,对结果匹配使用ToString
,将为您提供所需的内容
var regex = Regex.Match("/{localLink:1301}", @"\d+");
var result = regex.ToString();
你的
*
太贪婪了。您需要*?
或[^\d]*
new Regex( ".*?(\d+)" );
你可以试试这个
string output = new string(input.ToCharArray().Where(c => char.IsDigit(c)).ToArray());
请展示你尝试的全部内容,以及你得到的结果。阅读为什么比赛不应该贪婪?您希望捕获所有数字,而不仅仅是第一个。@vcjones,您希望数字部分是贪婪的,而不是指向数字部分的部分。
*
之前的[0-9]+
与前3个数字匹配,因为
匹配任何字符。
string output = new string(input.ToCharArray().Where(c => char.IsDigit(c)).ToArray());