如何从字符串中获取变量

时间:2017-02-14 12:42:45

标签: c# regex string substring

我正试图从电子邮件中提取BookingID

电子邮件将始终包含以下文字,但BookingID将始终不同。

  

WEB BOOKING ID号码:12345678

我已尝试过以下内容,但它只是给了我BookingID +其后的电子邮件。

string search = "WEB BOOKING ID NUMBER: ";
string bookingID = myItem.Body.Text.Substring(myItem.Body.Text.IndexOf(search) + search.Length);

请注意,BookingID的长度始终相同(8个字符)。

我非常感谢你的帮助。

2 个答案:

答案 0 :(得分:5)

使用正则表达式:

var search = @"WEB BOOKING ID NUMBER:\s*([0-9]+)";
var match = Regex.Match(myItem.Body.Text, search);
var res = string.Empty;
if (match.Success) 
{
    res = match.Groups[1].Value;
}

WEB BOOKING ID NUMBER:\s*([0-9]+)模式将找到WEB BOOKING ID NUMBER:文本,后跟0 +空白字符(\s*),并将捕获到第1组中的一个或多个数字(([0-9]+))。< / p>

请参阅regex demo here

enter image description here

答案 1 :(得分:2)

使用second argument Substring功能来限制提取部分的长度:

const string search = "WEB BOOKING ID NUMBER: ";
var bookingID = myItem.Body.Text.Substring(myItem.Body.Text.IndexOf(search) + search.Length, 8);