在c#中从字符串中提取和读取十进制数
本文关键字:读取 提取 十进制数 字符串 | 更新日期: 2023-09-27 18:03:27
我对c#编程比较陌生,如果这是一件简单的事情,我很抱歉,但我需要帮助。
我需要一个函数,它将从字符串中"提取"常规和十进制数字,并将它们放在数组中。我熟悉
string[] extractData = Regex.Split(someInput, @"'D+")
,但它只能取出整数。如果我有一个字符串"19 something 58"它会取19和58并将它们存储到两个不同的数组字段中。但是,如果我有"19.58数",它将再次将它们作为两个单独的数字,而我想将其注册为一个十进制数。
是否有一种方法,使它"读"这样的数字作为一个十进制数,使用正则表达式或其他方法?
尝试如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication9
{
class Program
{
const string FILENAME = @"c:'temp'test.xml";
static void Main(string[] args)
{
string[] inputs = {
"9 something 58" ,
"19.58 something"
};
foreach (string input in inputs)
{
MatchCollection matches = Regex.Matches(input, @"(?'number''d*'.'d*)|(?'number''d+[^'.])");
foreach (Match match in matches)
{
Console.WriteLine("Number : {0}", match.Groups["number"].Value);
}
}
Console.ReadLine();
}
}
}
试试这个
Regex.Replace(someInput, "[^-?'d+'.]", ""))