从字符串中获取数字

本文关键字:数字 获取 字符串 | 更新日期: 2023-09-27 18:10:51

如何从以下字符串中获取数字:

###E[shouldbesomenumber][space or endofline]

[]此处仅用于实际字符串中未出现的插图。

我在.net 2.0中。

谢谢。

从字符串中获取数字

我建议您使用正则表达式或字符串操作来隔离数字部分,然后根据需要解析的数字类型调用int.Parseint.TryParsedecimal.Parsedecimal.TryParse等。

正则表达式可能看起来像:

@"###E(-?'d+) ?$";

当然,对于非整数,您需要对其进行更改。样本代码:

using System;
using System.Text.RegularExpressions;
class Test
{
    static void Main(string[] arg)
    {
        Regex regex = new Regex(@"###E(-?'d+) ?$");        
        string text = "###E123 ";
        Match match = regex.Match(text);
        if (match.Success)
        {
            string group = match.Groups[1].Value;
            int parsed = int.Parse(group);
            Console.WriteLine(parsed);
        }
    }
}

请注意,如果数字超过int的范围,这仍然可能失败。(使用int.TryParse的另一个原因…(

static string ExtractNumber(string text)
{
    const string prefix = "###E";
    int index = text.IndexOfAny(new []{' ', ''r', ''n'});
    string number = text.Substring(prefix.Length, index - prefix.Length);
    return number;
}

现在提取了您的号码,您可以对其进行解析或按原样使用。