2013-06-17 3 views
-3

Помогите найти все "rect ИМЯ = null" с помощью C# regex. (Между глобал и endglobals)Поиск текста с использованием C# regex

//Text example: 
... 
     globals 
      ... 
     boolexpr cj_true_bool_4896bnao87 
     string udg_globals = "endglobals" 
     trigger gg_trg___________________________u=null 
     rect gg_rct_MyReg1=null 
     rect  ra2462346 =   null 
      ... 
      endglobals 
... 

Моим кодом (, работой):

  1. частного ничтожной openFileDialog1_FileOk (объектом отправителем, CancelEventArgs е) { строкой startglobs = @ "^ \ с * глобал \ S * $ "; string endglobs = @ "^ \ s * endglobals \ s * $"; string currrect = @ "^ \ s * rect \ s + (. ) \ s = \ s * null \ s *";

       using (StreamReader file = new StreamReader(openFileDialog1.FileName)) 
           { 
            string currline; 
            bool globalstate = false; 
            while ((currline = file.ReadLine()) != null) 
            { 
             /* find globals */ 
             Regex startr = new Regex(startglobs); 
             Match startm = startr.Match(currline); 
             if (startm.Success) 
              globalstate = true; 
    
    
             /* find endglobls */ 
             Regex endr = new Regex(endglobs); 
             Match endm = endr.Match(currline); 
             if (endm.Success) 
              globalstate = false; 
    
             /* if opened globals find global rect */ 
             if (globalstate) 
             { 
              Regex foundrectr = new Regex(currrect); 
              Match foundrectm = foundrectr.Match(currline); 
              if (foundrectm.Success) 
              { 
               MessageBox.Show(foundrectm.Groups[1].ToString()); 
              } 
             } 
            } 
    
           } 
    
          } 
    
+0

Вы не показали нам свою попытку. – leppie

+0

Вы что-нибудь пробовали? Пожалуйста, прочитайте [FAQ] и [ask] –

+0

Если попытки не увенчались успехом, зачем их показывать? –

ответ

0

Я дам вам подсказку ...

Регулярное выражение вы хотите

rect (.*)\s?=\s?null 

Теперь Вам нужно узнать, как использовать класс регулярных выражений для запустите это, и вы можете найти интересные слова MatchCollections и Groups.

что теперь дал вам достаточно, чтобы решить вашу проблему в течение 10 минут, но вы должны сделать некоторые чтение себя ...