2010-05-11 2 views
2

у меня будет другой тип строки (строка не будет иметь фиксированный формат, они будут отличаться друг от друга каждый раз) из них я хочу, чтобы удалить некоторые конкретные substring.Like строка может бытьСтрока Манипуляции с Regex

FUTIDX 26FEB2009 NIFTY 0 
FUTSTK ONGC 27 Mar 2008 
FUTIDX MINIFTY 30 Jul 2009 
FUTIDX NIFTY 27 Aug 2009 
NIFTY FUT XP: 29/05/2008 

Я хочу удалить строку, которая начинается с FUT. Как я могу это сделать?

+0

Каковы правила для этих преобразований? Например. почему XP в последней строке удаляется? – Jens

+0

Я бы сказал, может быть, 2 регулярных выражения, которые фиксируют дату (возможно, также удаляют ее из строки, в зависимости от следующего подхода) и тот, который либо захватывает базовый тип, либо тот, который удаляет тип инструмента (в зависимости от того, что меньше альтернатив). – Don

ответ

3

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

yourString = Regex.Replace(yourString, @"\bFUT\w*?\b", ""); 
+0

Спасибо за ответ. Что я делаю, это как строка, например 'FUTIDX 26FEB2009 NIFTY 0'. Теперь я сначала удаляю дату из строки, затем удаляю строку, которая начинается с' FUT' с помощью вашего регулярного выражения, и теперь оставшаяся строка - 'NIFTY 0' Но я хочу только' NIFTY'. Это только пример, но после удаления даты и удаления строки, которая начинается с 'FUT' из оставшейся строки, я хочу только« NIFTY ». – Harikrishna

0

Использование Split к 'разметить' строк. Затем проверьте каждую подстроку, если она starts with FUT.

string s = "FUTIDX 26FEB2009 NIFTY 0" 
string[] words = s.Split(' '); 
foreach (string word in words) 
{ 
    if (word.StartsWith("FUT")) 
    { 
     //do something 
    } 
} 
Смежные вопросы