using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string correct = "VIEW start page";
string incorrect = "VIEW something else";
string error = "something else";
checkInput(correct);
checkInput(incorrect);
checkInput(error);
}
static void checkInput(string input) {
Console.Write("Testing '{0}'...\n",input);
Match match = Regex.Match(input, @"^VIEW\s+(?:(start\s+page|end)|(.*))$");
if (match.Success) {
if ( match.Groups[1].Success)
Console.Write("Success!\n");
if ( match.Groups[2].Success)
Console.Write("Expected start page or end after VIEW\n");
} else {
Console.Write("usage: VIEW [start page|end]\n");
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJICAgIHN0cmluZyBjb3JyZWN0ID0gIlZJRVcgc3RhcnQgcGFnZSI7CgkgICAgc3RyaW5nIGluY29ycmVjdCA9ICJWSUVXIHNvbWV0aGluZyBlbHNlIjsKCSAgICBzdHJpbmcgZXJyb3IgPSAic29tZXRoaW5nIGVsc2UiOwoJICAgIAoJICAgIGNoZWNrSW5wdXQoY29ycmVjdCk7CgkgICAgY2hlY2tJbnB1dChpbmNvcnJlY3QpOwoJICAgIGNoZWNrSW5wdXQoZXJyb3IpOwoJfQoJCglzdGF0aWMgdm9pZCBjaGVja0lucHV0KHN0cmluZyBpbnB1dCkgewoJCUNvbnNvbGUuV3JpdGUoIlRlc3RpbmcgJ3swfScuLi5cbiIsaW5wdXQpOwoJCU1hdGNoIG1hdGNoID0gUmVnZXguTWF0Y2goaW5wdXQsIEAiXlZJRVdccysoPzooc3RhcnRccytwYWdlfGVuZCl8KC4qKSkkIik7CgogICAgICAgIGlmIChtYXRjaC5TdWNjZXNzKSB7CiAgICAgICAgICAgIGlmICggbWF0Y2guR3JvdXBzWzFdLlN1Y2Nlc3MpCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlKCJTdWNjZXNzIVxuIik7ICAgIAogICAgICAgICAgICBpZiAoIG1hdGNoLkdyb3Vwc1syXS5TdWNjZXNzKQogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZSgiRXhwZWN0ZWQgc3RhcnQgcGFnZSBvciBlbmQgYWZ0ZXIgVklFV1xuIik7CiAgICAJfSBlbHNlIHsKICAgICAgICAJQ29uc29sZS5Xcml0ZSgidXNhZ2U6IFZJRVcgW3N0YXJ0IHBhZ2V8ZW5kXVxuIik7CiAgICAJfQoJfQp9