2017-02-14 33 views
2

我試圖從電子郵件中提取BookingID如何從字符串中獲取變量

該電子郵件將始終包含以下文本,但BookingID將始終不同。

WEB預訂身份證號碼:12345678

我曾嘗試以下,但它只是給了我BookingID +電子郵件後它的其餘部分。

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

請注意,BookingID將始終是相同的長度(8個字符)。

我非常感謝這方面的幫助。

+0

使用字符串分割:字符串輸入=「WEB BOOKING ID NUMBER:12345678「; string output = input.Split(new char [] {':'})。Skip(1).FirstOrDefault()。Trim(); – jdweng

回答

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]+))。

regex demo here

enter image description here

+1

查看[在線C#演示](https://ideone.com/VwpfD8)。 –

2

使用second argumentSubstring功能以限制所提取的部分的長度:

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