獲得數如何,我可以從以下字符串獲得數:僅是爲了說明在現實串不存在從字符串
###E[shouldbesomenumber][space or endofline]
[]在這裏。
我在.net 2.0中。
謝謝。
獲得數如何,我可以從以下字符串獲得數:僅是爲了說明在現實串不存在從字符串
###E[shouldbesomenumber][space or endofline]
[]在這裏。
我在.net 2.0中。
謝謝。
我會建議你使用正則表達式或字符串操作隔離只是數字部分,然後根據你需要解析的號碼類型int.Parse
,int.TryParse
,decimal.Parse
,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
範圍。 (另一個原因是使用int.TryParse
...)
您的正則表達式在「### E97/M25」 –
@NightWalker未成功或許是因爲### E97/M25'沒有按照您要求的格式?你要求'### E [shouldbesomenumber] [space or endofline]',但現在你要求'### E [shouldbesomenumber] [space or endofline] [其他字符]'。正確的正則表達式是'「^ ### E( - ?\ d +)?」' – xanatos
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;
}
您的號碼被提取,你可以解析或使用它,因爲它是。
只需爲這個簡單的語法編寫一個for循環 –