获取一块文字

时间:2016-03-24 15:50:10

标签: c# regex

我需要提取一段文字。我目前使用这个正则表达式,但它抓取文件末尾的所有文本。如何将正则表达式调整到达前4行换行符后停止\ r

正则表达式

Regex(@"Education(\W+|\D+|\S+)*(^\r\r\r\r)*?", 
  RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline);


EDUCATION

    Some Text 
    01/07/1911-             Some Text
    01/23/1988              Some Text

    Some Text               Some Text
    01/11/1999-             Some Text
    01/13/1911              Some Text

    Some Text:              Some Text
    01/01/1966-             Some Text 
    01/30/1911              Some Text   

    Some Text:              Some Text/Some Text
    01/01/1911-             Some Text
    01/30/1911              Some Text
    01/01/1922-             Some Text 
    01/30/1933              Some Text 

Start of other text

1 个答案:

答案 0 :(得分:0)

您似乎只能将String.Split"\r\r\r\r"一起使用。

如果您需要使用正则表达式,请使用

@"Education(?:(?!\r{4}).)*"

使用RegexOptions.Singleline | RegexOptions.IgnoreCase标志(不需要使用多行标记)。

(?:(?!\r{4}).)*是一个驯化的贪婪令牌,可匹配前4个连续\r个符号(或字符串末尾)的任何文本。