using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?mi)
^
(?!
\h*
(?: [A-Z] \h* \. | ANSWER \h* : )
)
\h*
(?<question> \S .*? ) # (1)
\?? \h* \s* ^ \h* A \h* \. \h*
(?<A> .*? ) # (2)
\h*
\s*
(?:
^ \h* B \h* \. \h*
(?<B> .*? ) # (3)
\h*
(?:
\s* ^ \h* C \h* \. \h*
(?<C> .*? ) # (4)
\h*
(?:
\s* ^ \h* D \h* \. \h*
(?<D> .*? ) # (5)
\h*
(?:
\s* ^ \h* E \h* \. \h*
(?<E> .*? ) # (6)
\h*
)?
)?
)?
)?
\s* ^ \h* ANSWER \h* : \h*
(?<answer1> [A-F] ) # (7)
(?:
\h* , \h*
(?<answer2> [A-F] ) # (8)
)?
";
string input = @"Linux is
A. A Graphic Software
B. A Driver
C. A Line Controller Software
D. An Operating System
ANSWER: D
Which feature helps in compress and contain the collection of files in to one
A. Zip
B. Shortcut
C. Icon
D. Extract
ANSWER: A
What is php?
A. Php is a language.
B. Php creates HTML.
C. Php is fun.
D. none of these.
ANSWER: D
Which is YII-2?
A. Framework.
B. Tool.
C. None of these
ANSWER: A,B";
RegexOptions options = RegexOptions.IgnorePatternWhitespace;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx