2015-08-15 20 views
0

我想創建一個正則表達式模式來獲取兩個單詞之間的東西。正則表達式模式獲取兩個單詞之間的所有行文本

Start: 
Apple 
Cat 
Ball 
End: 

我想開始之間的數據:結束和:

我能夠使用C#尋找這樣的數據:

區域獲取所需的字段數據

public static List<string> GetRequiredData(string[] lines, string StartPos, string EndPos) 
    { 
     List<String> RequiredField = new List<String>(); 


     bool hit = false; 

     foreach (var line in lines) 
     { 
      if (line == EndPos) 
      { 
       hit = false; 
      } 

      else if (hit == true) 
      { 
       if (line != "\t"||line=="") 
       { 
        RequiredField.Add(line); 

       } 
      } 

      else if (line == StartPos) 
      { 
       hit = true; 
      } 


     } 
     return RequiredField; 
    } 
    #endregion Get Required Field Data 

但我認爲使用正則表達式來達到同樣的目的會很酷。 我試過(?< =開始:)(。*)(?=結束:)但它不工作。加我也想刪除任何行之間沒有文字。

我會很感激任何幫助。 謝謝你,

+0

你可以嘗試確實正則表達式:https://regex101.com/r/lC3oE8/1 –

回答

1

我不是在正則表達式的專家,但我給它一個嘗試:

beginningword\n((.+\n)+)endingword 

對於文本:匹配於爲羣#

beginningword 
first line of whatever 
second line of whatever 
third line of whatever 
endingword 

文本1:

first line of whatever 
second line of whatever 
third line of whatever 
+0

我想上面的圖案,但我沒有工作。 –

+0

(?s)(?<= beginword)。*?(?= endingword)爲我工作。 但它不會刪除多餘的空格。 舉一個例子: beginningword 的任何 第三行的任何 第二行的第一行任何 endingword 它也將採取空白line.I能夠刪除使用方法String類該行在C#中。是否有可能使用正則表達式刪除這些空行? –

+0

我認爲這是不可能的正則表達式。 – piezol

相關問題