Пример #1
0
        public static void TestRegexMatch1(afh.Application.Log log)
        {
            using (log.Lock()){
                StringRegex.RegLan reglan = new StringRegex.RegLan("こんにちは|さようなら");
                log.WriteLine("Regular Expression: {0}", reglan);
                foreach (StringRegex.Capture c in reglan.Matches("こんにちは さようなら こんにちは こんにちは さようなら"))
                {
                    log.WriteLine("Match! : {0}", c.Value);
                }

                reglan = new StringRegex.RegLan(@"(?<l>\d+)(?<o>(?:\+|\-))(?<r>\d+)");
                log.WriteLine("Regular Expression: {0}", reglan);
                foreach (StringRegex.Capture c in reglan.Matches("3+2+4+5 1+2+3 2+3 4+7 123+321"))
                {
                    int  l = int.Parse(c.Groups["l"].Last);
                    int  r = int.Parse(c.Groups["r"].Last);
                    bool o = c.Groups["o"].Last.Value == "+";
                    log.WriteLine("{0} を計算すると→: {1}", c, o?l + r:l - r);
                }

                log.WriteLine("== System.Text.RegularExpressions の場合 ==");
                Rgx::Regex rgx = new Rgx::Regex(@"(?<l>\d+)(?<o>(?:\+|\-))(?<r>\d+)");
                log.WriteLine("Regular Expression: {0}", rgx.ToString());
                foreach (Rgx::Match m in rgx.Matches("3+2+4+5 1+2+3 2+3 4+7 123+321"))
                {
                    int  l = int.Parse(m.Groups["l"].Value);
                    int  r = int.Parse(m.Groups["r"].Value);
                    bool o = m.Groups["o"].Value == "+";
                    log.WriteLine("{0} を計算すると→: {1}", m.Value, o?l + r:l - r);
                }
            }
        }
Пример #2
0
        private static void TestRegexMatch(afh.Application.Log log, string regex, string text, bool expected)
        {
            StringRegex.RegLan reg = new StringRegex.RegLan(regex);
            bool r = reg.IsMatching(text);

            log.WriteLine("'{1}'∈/{0}/ : {2}", reg, text, r);
            if (r != expected)
            {
                log.WriteError("***ASSERTION FAILED*** 評価結果が予期した物と異なります!!!");
            }
        }
Пример #3
0
 public static void benchRegexCompileAfh1()
 {
     StringRegex.RegLan reglan = new StringRegex.RegLan(@"(?<l>\d+)(?<o>(?:\+|\-))(?<r>\d+)");
 }