首页 > 解决方案 > 从粘合了字符的字符串中获取数字

问题描述

我需要恢复胶合字符串中的每个数字

例如,从这些字符串:

string test = "number1+3"
string test1 = "number 1+4"

我想恢复(1 和 3)和(1 和 4)我该怎么做?

代码

 string test= "number1+3";
 List<int> res; 

 string[] digits= Regex.Split(test, @"\D+");
 foreach (string value in digits)
 {
     int number;
     if (int.TryParse(value, out number))
     {
         res.Add(number)
     }
 }

标签: c#.net

解决方案


这个正则表达式应该工作

string pattern = @"\d+";
string test = "number1+3";

foreach (Match match in Regex.Matches(test, pattern))
   Console.WriteLine("Found '{0}' at position {1}", 
                     match.Value, match.Index);

请注意,如果您打算多次使用它,出于性能原因,创建 Regex 实例比使用此静态方法更好。

var res = new List<int>();

var regex = new Regex(@"\d+");

void addMatches(string text) {
    foreach (Match match in regex.Matches(text))
    {
        int number = int.Parse(match.Value);
        res.Add(number);
    }
}

string test = "number1+3";
addMatches(test);

string test1 = "number 1+4";
addMatches(test1);

MSDN 链接

小提琴 1

小提琴 2


推荐阅读