2015-04-13 5 views
-1

Н \ г \ п ХХХХ ХХХХ ХХХХХ -XXXX 45 108 10 Н \ г \ нЖ \ г \ NT \ г \ п *** (10) 5 2738372 827172672 2 * ** X 345 145/00 \ г \ nXxxxxx: \ г \ nXxxxxx \ г \ nXxxxxx \ г \ nXXXXX 21 \ г \ nXXXXXX 2't XxxИзвлечение определенной части строки в C#

у меня есть эта строка из PDF Я просто хочу те извлечь определенную часть и отобразить его

заранее спасибо

+2

A Вы пробовали * ничего *? SO действительно не служба написания кода. Всегда ли это на 5-й строчке? Всегда ли такая же длина и всегда начинается в начале строки? Это всегда один и тот же текст? Вы не дали нам достаточно информации о проблеме. –

+2

Я дам вам подсказку: 'String.Split',' String.Substring', 'Regular Expression' может потенциально решить вашу проблему. – Greg

+0

Является всегда такой же длиной и всегда в начале 4-й новой линии. Необходимо извлечь эту часть (10) 5 2738372 827172672 2 в текст выше. – dumbCoder

ответ

0

Это просто альтернатива предоставленному Джим решению. Вы можете использовать Regular Expressions для достижения того же результата. (Это, конечно, если ожидаемое количество цифр постоянно В противном случае, вам нужно будет немного изменить шаблон для размещения.)

Если исходная строка:

N \ г \ п XXXX XXXX -XXXX XXXXX 45 108 10 N \ r \ nJ \ r \ nT \ r \ n *** (10) 5 2738372 827172672 2 *** X 345 145/00 \ r \ nXxxxxx: \ r \ nXxxxxx \ r \ nXxxxxx \ г \ nXXXXX 21 \ г \ nXXXXXX 2't Xxx

Использование шаблона:

\ (\ d {2} \) \ s \ d \ s \ d {7} \ s \ d {9} \ с \ д

что можно объяснить следующим образом:

\(\d{2}\) - Where the string starts with (and contains 2 numeric digits followed by) 
\s\d\  - and is followed by a space and a numeric digit 
\s\d{7} - and is then followed by a space and 7 numeric digits 
\s\d{9} - and is then followed by a space and 9 numeric digits 
\s\d  - and finally ending with a space and a single numeric digit 

Вы можете использовать:

public static string ParseValue(string sourceStr) 
{ 
    string pattern = @"\(\d{2}\)\s\d\s\d{7}\s\d{9}\s\d"; 
    return System.Text.RegularExpressions.Regex.Match(sourceStr, pattern).Value; 
} 

Который даст вам следующий результат:

(10) 5 2738372 827172672 2 
1

Если это всегда такой же длины на 4-й линии, то это должно сделать это:

const int TextLength = 26; // length of text you want 
// text is the string that contains the data. 

// get the 4th line 
string line = text.Split(new[]{"\r\n"}, StringSplitOptions.None)[3]; 

// and extract the text you want 
string foo = line.SubString(TextLength); 
Смежные вопросы