我想从字符串中提取多个数字。字符串可能如下所示:
hello:123.11,good:456,bye:789.78
我希望得到3个数字(包括整数和浮点数):C#的123.11,456,789.78。
更新:包括浮点数,而不是所有整数。
如何? 谢谢!
答案 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);
}
}
}