简体   繁体   中英

Regex for extracting certain part to be match

I'm trying to extract certain data from a string with regex. The string looks like this:

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;
        }
    }
}

I would like to extract the company name, duration (1 year 4 months), and designation (Software Developer), where this regex pattern matches (April 2020 - Present (1 year 1 month)). When this pattern matches, I want to get the three lines before this pattern.

I have tried string regex Pattern = @"[ADFJMNOS][az]{2,8}\s[12][0-9]{3}\b"; . This gets me only April 2020 .

I want to get three lines before this pattern.

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

If you insert ((.*\n){3}) at the start of your pattern string, match.Groups[1] will contain the desired three lines before this pattern .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM