如何从字符串中提取多个数字?

时间:2015-03-15 04:20:55

标签: c#

我想从字符串中提取多个数字。字符串可能如下所示:

hello:123.11,good:456,bye:789.78

我希望得到3个数字(包括整数和浮点数):C#的123.11,456,789.78。

更新:包括浮点数,而不是所有整数。

如何? 谢谢!

2 个答案:

答案 0 :(得分:1)

尝试使用带有正则表达式的Matches类的Regex方法来获取所有数字的出现。

using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {

        var subjectString = "hello:123,good:456,bye:789";
        var result = Regex.Matches(subjectString, @"[-+]?(\d*[.])?\d+");
        foreach(var item in result)
        {
            Console.WriteLine(item);
        }

    }
}

<强> DOT NET FIDDLE

答案 1 :(得分:0)

using System.IO;
using System;
using System.Collections.Generic;

    class Program
    {
        static void Main()
        {
            string digitsOnly = String.Empty;
            string s = "2323jh213j21h3j2k19hk";
           List<int> MyNumbers = new List<int>();
            foreach (char c in s)
            {

                if (c >= '0' && c <= '9') digitsOnly += c;
                else
                {
                     int NumberToSave;

                      bool IsIntValue = Int32.TryParse(digitsOnly, out NumberToSave);

                      if (IsIntValue)
                      {
                         MyNumbers.Add(Convert.ToInt16(digitsOnly));
                      }



                    digitsOnly=String.Empty;
                }
            }

            foreach (int element in MyNumbers)
                {
                  Console.WriteLine(element);
                }


        }
    }