用于提取要匹配的特定部分的正则表达式

Regex for extracting certain part to be match

我正在尝试使用正则表达式从字符串中提取某些数据。字符串如下所示:

some description points goes here

Experience

Company Name

1 year 4 months

software Developer

April 2020 - Present (1 year 1 month)

City Name, State Name, country Name

some description points goes here

StringBuilder sb = new StringBuilder();    
string pdfData = string.Empty, pdfData2 = string.Empty;

Regex re = new Regex(regexPattern, RegexOptions.IgnoreCase);

using (PdfReader reader = new PdfReader(path))
{
    for (int pageNo = 1; pageNo <= reader.NumberOfPages; pageNo++)
    {
        ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
        pdfData += PdfTextExtractor.GetTextFromPage(reader, pageNo, strategy);
        Match match = re.Match(pdfData);
        if (match.Success)
        {
            pdfData2 += match.Value;
        }
    }
}

我想提取公司名称、持续时间(1 年 4 个月)和名称(软件开发人员),其中此正则表达式模式匹配(2020 年 4 月 - 现在(1 年 1 个月))。当这个模式匹配时,我想得到这个模式之前的三行。

我试过了string regex Pattern = @"[ADFJMNOS][a-z]{2,8}\s[12][0-9]{3}\b";。这只让我 2020 年 4 月

I want to get three lines before this pattern.

I have tried string regex Pattern = @"[ADFJMNOS][a-z]{2,8}\s[12][0-9]{3}\b";

如果您在模式字符串的开头插入 ((.*\n){3})match.Groups[1] 将包含所需的 此模式前三行 .