Esempio n. 1
0
        public void Backreference_Number()
        {
            var regex = RegularExpression.Of(
                CaptureGroup.Of(Quantifiers.OneOrMore(Literal.For("a"))),
                Quantifiers.ZeroOrMore(Literal.For("b")),
                Backreference.For(1)
                ).ToRegex();

            Assert.AreEqual(@"(a+)b*\1", regex.ToString());
        }
Esempio n. 2
0
        public static void test_backref()
        {
            var context = new Context("aaaaab");
            var chara   = new Character('a');
            var lazya   = new Lazy(chara, 1);
            var cap1    = new CaptureGroup(lazya, 1);
            var back1   = new Backreference(cap1);
            var list    = new List(new IMatch[] { cap1, back1 });

            // ((a+?)\1)
            ExecTest(context, list);
        }
Esempio n. 3
0
        public void Backreference_Name_WithQuotes()
        {
            var regex = RegularExpression.Of(
                CaptureGroup.Of(new CaptureGroupOptions()
            {
                Name = "a", UseQuotes = true
            }, Quantifiers.OneOrMore(Literal.For("a"))),
                Quantifiers.ZeroOrMore(Literal.For("b")),
                Backreference.For("a", true)
                ).ToRegex();

            Assert.AreEqual(@"(?'a'a+)b*\k'a'", regex.ToString());
        }
Esempio n. 4
0
        public void Backreference_Name()
        {
            var regex = RegularExpression.Of(
                CaptureGroup.Of(new CaptureGroupOptions()
            {
                Name = "a"
            }, Quantifiers.OneOrMore(Literal.For("a"))),
                Quantifiers.ZeroOrMore(Literal.For("b")),
                Backreference.For("a")
                ).ToRegex();

            Assert.AreEqual(@"(?<a>a+)b*\k<a>", regex.ToString());
        }
Esempio n. 5
0
 public object VisitBackreference(Backreference backreference, object data)
 {
     throw new NotImplementedException();
 }