从字符串中获取数字

时间:2011-10-09 09:04:40

标签: c# string .net-2.0

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

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

[]此处仅适用于真实字符串中不存在的插图。

我在.net 2.0。

感谢。

2 个答案:

答案 0 :(得分:4)

我建议你使用正则表达式或字符串操作来隔离只是数字部分,然后调用int.Parseint.TryParsedecimal.Parse,{ {1}}等等,具体取决于您需要解析的数字类型。

正则表达式可能类似于:

decimal.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的另一个原因......)

答案 1 :(得分:2)

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;
}

现在您的号码已被提取,您可以解析它或按原样使用它。

相关问题