2014-01-15 24 views
-1

在這個項目中,我需要將預訂ID從下面的字符串分隔成一個單獨的整數。如何從C#中的字符串捕獲整數?

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

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

澄清:上面的代碼是整個字符串,第一行是包含預訂ID的地方。我需要幫助找到一種方法來從字符串中分離ID。 我試過正則表達式,但沒有佔上風。我無法理解字符串格式。 ID可以是任意長度。

+0

你有一些代碼(嘗試),你可以告訴我們嗎? – Dukeling

+0

'(? \ D +)(? \ d +)' – zerkms

+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]}; 
+0

這從整個字符串中分離出所有的int。我只需要BookingID。你也可以解釋(或鏈接)瞭解字符串格式。謝謝 –

+0

你可能想要在循環中實現它,在這裏你看看你的文件的每一行。我將在編輯中分解正則表達式。 – paqogomez

+0

完美的,有一點點搞亂我得到它的工作。謝謝! –

相關問題