2017-10-05 132 views
0

我試圖提取Cross Streets~線,直到下一行,其中包括一個波形符在這種情況下somewhere--它在它可能只是另一起案件中的電話號碼後,其存在的十字街值之間的多條線路本身或某個其他領域是一條線上的波浪線。它已全部拉入一個字符串,其中包括\r\n字符。下面顯示了字符串的一個子集。C#正則表達式提取標記

\r\nVenue:~SOLDOTNA\r\nCross Streets~\r\nDEAD END/STERLING HWY\r\n S KOBUK ST\r\nPhone:~(999) 999-9999\r\nQuadrant:~ES 1\r\n 

我使用C#在Visual Studio 2015年從下面的例子中,我將最終希望獲得含"DEAD END/STERLING HWY, S KOBUK ST"

Venue:~SOLDOTNA 
Cross Streets~ 
DEAD END/STERLING HWY 
S KOBUK ST 
Phone:~(999) 999-9999 

我花了幾個小時試圖無濟於事多個SO建議的字符串。我已經最近嘗試了以下內容:

Regex.Matches(data, "Cross Streets~\r\n(.+?)\r\n.+?~", RegexOptions.Singleline)[0].Groups 
{System.Text.RegularExpressions.GroupCollection} 
    Count: 2 
    IsReadOnly: true 
    IsSynchronized: false 
    SyncRoot: {Cross Streets~ 
DEAD END/STERLING HWY 
S KOBUK ST 
Phone:~} 
    Results View: Expanding the Results View will enumerate the IEnumerable 

認爲Groups[1]會包含我正在尋找的信息,但它僅包括第一行。

Regex.Matches(data, "Cross Streets~\r\n(.+?)\r\n.+?~", RegexOptions.Singleline)[0].Groups[1] 
{DEAD END/STERLING HWY} 
    Captures: {System.Text.RegularExpressions.CaptureCollection} 
    Index: 149 
    Length: 23 
    Name: "1" 
    Success: true 
    Value: "DEAD END/STERLING HWY" 

儘管環境不一樣礦山,這裏是經由SO維基正則表達式的文章要求一個正則表達式鏈接...(不匹配所有,但在我的C#即時窗口,我讓比賽如上圖所示,只是不正是我想要的。)

https://regex101.com/r/HpHSra/3

回答

0

你並不真的需要正則表達式來做到這一點。您可以使用String.Split方法並搜索所需的結果。

using System; 
using System.Linq; 

public class Program 
{ 
    public static void Main() 
    { 
    string x = @"Venue:~SOLDOTNA 
Cross Streets~ 
DEAD END/STERLING HWY 
S KOBUK ST 
Phone:~(999) 999-9999"; 


     string[] allResults = x.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None).ToArray(); 
     foreach(string y in allResults) 
     { 
      Console.WriteLine(y + " = " +y.Length); 
     } 


     Console.WriteLine(); 


     if(allResults.Contains("Cross Streets~") && allResults.Length > Array.IndexOf(allResults,"Cross Streets~")+1) 
     { 
      Console.WriteLine("Expeced Result : " + allResults[ Array.IndexOf(allResults,"Cross Streets~")+1 ]); 
     } 

    } 
} 

這裏是小提琴手:https://dotnetfiddle.net/zvBhMF