示例#1
0
        public void Test_IsMatch_29()
        {
            const string EXPECTED_REGEX_PATTERN = @"\G(.+)[\t\u007C](.+)\r?\n";

            var pattern = new RegExpPattern()
                          .ByOnlyMatchingWherePreviousMatchEnded()
                          .GroupOf(
                true,
                p => p.OneOrMoreOf(
                    false, false,
                    p2 => p2.AnyCharacter())
                )
                          .AnyCharacter(
                RegExpEscapeCharacter.Build(EscapeCharacter.EscapeCharacterType.Tab),
                RegExpCharacter.Build('|', true))
                          .GroupOf(
                true,
                p => p
                .OneOrMoreOf(
                    false, false,
                    p2 => p2.AnyCharacter()))
                          .ZeroOrOneOf(
                false, false,
                p => p.Character(EscapeCharacter.EscapeCharacterType.CarriageReturn))
                          .Character(EscapeCharacter.EscapeCharacterType.NewLine);

            pattern.ToString().Should().Be(EXPECTED_REGEX_PATTERN);

            const string INPUT = "Mumbai, India|13,922,125\t\n" +
                                 "Shanghai, China\t13,831,900\n" +
                                 "Karachi, Pakistan|12,991,000\n" +
                                 "Delhi, India\t12,259,230\n" +
                                 "Istanbul, Turkey|11,372,613\n";

            Console.WriteLine("Population of the World's Largest Cities, 2009");
            Console.WriteLine();
            Console.WriteLine("{0,-20} {1,10}", "City", "Population");
            Console.WriteLine();

            foreach (Match match in pattern.Matches(INPUT))
            {
                Console.WriteLine("{0,-20} {1,10}",
                                  match.Groups[1].Value,
                                  match.Groups[2].Value);
            }
        }