using System;
using System.Text.RegularExpressions;
class Example
{
static void match(string pat, string text)
{
// Instantiate the regular expression object.
Regex r = new Regex(pat, RegexOptions.IgnoreCase);
// Match the regular expression pattern against a text string.
Match m = r.Match(text);
int matchCount = 0;
while (m.Success)
{
Console.WriteLine("Match"+ (++matchCount));
for (int i = 1; i <= 3; i++)
{
Group g = m.Groups[i];
Console.WriteLine("Group" + i + " = '" + g + "'");
}
m = m.NextMatch();
}
}
static void Main()
{
string pat = @"(?:(<div id[^>]+>)(\w+))?([\ _]{3,})";
match(pat, "<div id=\"div1\">Street ___________________ </div>");
match(pat, "<div id=\"div2\">CAP |__|__|__|__|__| number ______ </div>");
match(pat, "<div id=\"div3\">City _____________________ State |__|__|</div>");
match(pat, "<div id=\"div4\">City2 ____________________ State2 _____</div>");
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpjbGFzcyBFeGFtcGxlIAp7CiAgIHN0YXRpYyB2b2lkIG1hdGNoKHN0cmluZyBwYXQsIHN0cmluZyB0ZXh0KQogICB7CiAgICAgIC8vIEluc3RhbnRpYXRlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0LgogICAgICBSZWdleCByID0gbmV3IFJlZ2V4KHBhdCwgUmVnZXhPcHRpb25zLklnbm9yZUNhc2UpOwoKICAgICAgLy8gTWF0Y2ggdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIGFnYWluc3QgYSB0ZXh0IHN0cmluZy4KICAgICAgTWF0Y2ggbSA9IHIuTWF0Y2godGV4dCk7CiAgICAgIGludCBtYXRjaENvdW50ID0gMDsKICAgICAgd2hpbGUgKG0uU3VjY2VzcykgCiAgICAgIHsKICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIk1hdGNoIisgKCsrbWF0Y2hDb3VudCkpOwogICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSAzOyBpKyspIAogICAgICAgICB7CiAgICAgICAgICAgIEdyb3VwIGcgPSBtLkdyb3Vwc1tpXTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkdyb3VwIiArIGkgKyAiID0gJyIgKyBnICsgIiciKTsKICAgICAgICAgfQogICAgICAgICBtID0gbS5OZXh0TWF0Y2goKTsKICAgICAgfQogICB9CiAgIHN0YXRpYyB2b2lkIE1haW4oKSAKICAgewogICAgICBzdHJpbmcgcGF0ID0gQCIoPzooPGRpdiBpZFtePl0rPikoXHcrKSk/KFtcIF9dezMsfSkiOwogICAgICBtYXRjaChwYXQsICI8ZGl2IGlkPVwiZGl2MVwiPlN0cmVldCBfX19fX19fX19fX19fX19fX19fIDwvZGl2PiIpOwogICAgICBtYXRjaChwYXQsICI8ZGl2IGlkPVwiZGl2MlwiPkNBUCB8X198X198X198X198X198IG51bWJlciBfX19fX18gPC9kaXY+Iik7CiAgICAgIG1hdGNoKHBhdCwgIjxkaXYgaWQ9XCJkaXYzXCI+Q2l0eSBfX19fX19fX19fX19fX19fX19fX18gU3RhdGUgfF9ffF9ffDwvZGl2PiIpOwogICAgICBtYXRjaChwYXQsICI8ZGl2IGlkPVwiZGl2NFwiPkNpdHkyIF9fX19fX19fX19fX19fX19fX19fIFN0YXRlMiBfX19fXzwvZGl2PiIpOwogICB9Cn0=