2017-10-05 106 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