如何从C#中的字符串中捕获整数?

时间:2014-01-15 23:05:56

标签: c#

在这个项目中,我需要将预订ID与下面的字符串分开,形成一个单独的整数。

Booking ID: 27620
Booked for Paitient(ID): 003
Booked Staff ID: 001
Booked Room: b001
Booked Equipment: Adam

如何在C#中执行此操作?

澄清:上面的代码是整个字符串,第一行是包含预订ID的地方。我需要帮助找到一种方法来将ID与字符串分开。 我试过Regex,但没有占上风。我无法理解字符串格式。 ID可以是任意长度。

1 个答案:

答案 0 :(得分:1)

正则表达式可以处理您正在寻找的内容。

string text = "Booking ID: 27620 ..."; 
foreach (string line in new LineReader(() => new StringReader(text))
{
    string result = Regex.Replace(line, @"[^\d]", "");
    Console.WriteLine(result); // >> 27620
}

正则表达式"[^\d]"说:

[]捕获

^\d一切不是(^)数字(\d

然后Replace用空字符串替换它。

如果您循环浏览文件的每一行,这将是最有价值的。

如果您需要保留字段值,那么运行简单拆分将是更好的方法。

string input = "Booking ID: 27620";
Dictionary<string, string> dict = 
    new Dictionary<string, string>{key = input.Split(':')[0], 
                                 value = input.Split(':')[1]};