在c#中从字符串中提取和读取十进制数

本文关键字:读取 提取 十进制数 字符串 | 更新日期: 2023-09-27 18:03:27

我对c#编程比较陌生,如果这是一件简单的事情,我很抱歉,但我需要帮助。

我需要一个函数,它将从字符串中"提取"常规和十进制数字,并将它们放在数组中。我熟悉

    string[] extractData = Regex.Split(someInput, @"'D+")

,但它只能取出整数。如果我有一个字符串"19 something 58"它会取19和58并将它们存储到两个不同的数组字段中。但是,如果我有"19.58数",它将再次将它们作为两个单独的数字,而我想将其注册为一个十进制数。

是否有一种方法,使它"读"这样的数字作为一个十进制数,使用正则表达式或其他方法?

在c#中从字符串中提取和读取十进制数

尝试如下:

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+'.]", ""))