【问题标题】:How to get a variable from inside a string如何从字符串中获取变量
【发布时间】:2017-02-14 12:42:44
【问题描述】:

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

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

网上预订 ID 号:12345678

我已经尝试了以下方法,但它只给了我 BookingID + 之后的电子邮件的其余部分。

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

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

我将非常感谢您对此的帮助。

【问题讨论】:

  • 使用字符串拆分:string input = "WEB BOOKING ID NUMBER: 12345678";字符串输出 = input.Split(new char[] { ':' }).Skip(1).FirstOrDefault().Trim();

标签: c# regex string substring


【解决方案1】:

使用正则表达式:

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

regex demo here

【讨论】:

    【解决方案2】:

    使用second argumentSubstring函数来限制提取部分的长度:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多