我如何从以下字符串中获取数字:
###E[shouldbesomenumber][space or endofline]
[]此处仅适用于真实字符串中不存在的插图。
我在.net 2.0。
感谢。
答案 0 :(得分:4)
我建议你使用正则表达式或字符串操作来隔离只是数字部分,然后调用int.Parse
,int.TryParse
,decimal.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;
}
现在您的号码已被提取,您可以解析它或按原样使用它。