2013-05-14 5 views
0

У меня есть строка, как этоткак извлечь строки между двумя символами

*PMGFEC«               
1.1GURRALA/KALPANA*ADT 2.1GURRALA/BHARGAVSRIRAM REDDY*ADT  
3.1GURRALA/TEJASVI REDDY*CNN         
1 DL 32T 30MAY Q ATLAMS HK3 745P 1040A 31MAY F    
              /DCDL*F9L4QB /E 
2 KL 871N 31MAY F AMSDEL HK3 150P 130A 01JUN J    
              /DCKL*7XZRBF /E 
3 AI 560G 01JUN J DELHYD HK3 650A 850A /DCAI*YCH0F /E  
4 9W 452W 08AUG Q HYDBOM HK3 605P 735P /DC9W*PYZJQH /E  
5 DL 49T 09AUG F BOMAMS*HK3 110A 700A /DCDL*F9L4QB /E  
6 DL9390T 09AUG F AMSDFW*HK3 1045A 155P /DCDL*F9L4QB /E  
OPERATED BY KLM ROYAL DUTCH AIRLINES        
7 OTH YY 09APR W GK1 NYC          
TKT/TIME LIMIT             

Я хочу PMGFEC от * PMGFEC «с использованием регулярных выражений, как я могу это сделать

в настоящее время я использую \*\w{6}\« но выборки *PMGFEC«

также

я хочу принести 1568.41 между USD и последним местом, как я могу это сделать

NAME PQ TYPE TKT DES    CREATED  TKT TTL  
1.1  1       14MAY USD 1568.41  
2.1  1       14MAY USD 1568.41  
3.1  2 CNN CH25     14MAY USD 1363.41 
+0

Должен ли он быть регулярным выражением? Не будет 'string.Split' делать? –

+0

nope Я хочу только regex – amitesh

+0

В этом случае это дубликат. См. Также список вопросов справа. –

ответ

1

Вместо того, чтобы использовать группу захвата вы можете использовать lookaround assertions, чтобы соответствовать только разыскиваемой части:

(?<=\*)\w{6}(?=\«) 
+0

спасибо, что работает mate – amitesh

+0

У меня есть еще одна проблема, я хочу выбрать некоторую валюту между USD и Space, но когда я использую ваше регулярное выражение, это не сработало. Я использую user regex как это (? <= \ USD) \ s { 3} \ d {1,4} \. \ D {2} (? = \ S) для этой строки NAME PQ TYPE TKT DES CREATED TKT TTL 1.1 1 14MAY USD 1568,41 2.1 1 14MAY USD 1568,41 3.1 2 CNN CH25 14MAY USD 1363,41 – amitesh

0

Вы должны использовать group, обозначенный (...), чтобы захватить только символы, которые вы заинтересованы. Вы можете проверить Groups свойства результата извлечь этот текст.

Например:

var result = Regex.Matches(input, @"\*(\w{6})«")[0].Groups[1].Value; 
Console.WriteLine(result); // PMGFEC 
2

Это должно сделать это [*]([a-zA-Z]{1,6})[«]. Вы можете заменить на дополнительные символы, которые будут скопировать желаемый текст.

enter image description here

+0

Мне любопытно, что вы использовали для создания этой диаграммы? –

+2

@ p.s.w.g Отъезд http://debuggex.com – Stephan

+0

Спасибо, я должен это запомнить. Похоже, очень хороший инструмент для объяснения регулярных выражений. :) –

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