我需要从现有字符串中提取子字符串。此字符串以不感兴趣的字符(包括",""空格"和数字)开头,以",123,"结尾。或",57,"或类似的东西,数字可以改变。我只需要数字。 感谢
答案 0 :(得分:1)
匹配数字的正则表达式:Regex regex = new Regex(@"\d+");
来源(略有修改):Regex for numbers only
答案 1 :(得分:1)
public static void Main(string[] args)
{
string input = "This is 2 much junk, 123,";
var match = Regex.Match(input, @"(\d*),$"); // Ends with at least one digit
// followed by comma,
// grab the digits.
if(match.Success)
Console.WriteLine(match.Groups[1]); // Prints '123'
}
答案 2 :(得分:0)
我认为这就是你要找的东西:
Remove all non numeric characters from a string using Regex
using System.Text.RegularExpressions;
...
string newString = Regex.Replace(oldString, "[^.0-9]", "");
(如果您不想在最终结果中允许小数分隔符,请从上面的正则表达式中删除。)。
答案 3 :(得分:0)
您可以使用\ d +匹配给定字符串中的所有数字
所以你的代码将是
var lst=Regex.Matches(inp,reg)
.Cast<Match>()
.Select(x=x.Value);
lst
现在包含所有数字
但如果您的输入与问题中提供的相同,则不需要正则表达式
input.Substring(input.LastIndexOf(", "),input.LastIndexOf(","));
答案 4 :(得分:0)
尝试这样的事情:
String numbers = new String(yourString.TakeWhile(x => char.IsNumber(x)).ToArray());