2014-01-15 3 views
-1

В этом проекте мне нужно отделить идентификатор бронирования от строки ниже в отдельное целое число.Как захватить целые числа из строки в C#?

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

Как это сделать на C#?

Чтобы уточнить: приведенный выше код представляет собой целую строку, в первой строке указывается идентификатор бронирования. Мне нужна помощь в поиске способа отделить идентификатор от строки. Я пробовал Regex, но не превалировал. Я не могу окунуться в строковое форматирование. Идентификатор может быть любой длины.

+0

У вас есть код (попытка), которую вы можете нам показать? – Dukeling

+0

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

+0

Я сомневаюсь, что кто-то напишет решение для вас. Но читайте о регулярных выражениях и классе 'Regex', а затем покажите, что вы сделали до сих пор. –

ответ

1

Regex может обрабатывать то, что вы ищете.

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]" говорит:

[] Capture

^\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 от всей строки. Мне нужен только номер бронирования. Также вы можете объяснить (или ссылку) понимание форматов строк.Спасибо –

+0

Возможно, вы захотите реализовать это в цикле, где вы смотрите на каждую строку вашего файла. Я буду разрывать регулярное выражение в редактировании. – paqogomez

+0

Отлично, с немного беспорядочным, я получил его на работу. Спасибо! –

Смежные вопросы