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()); }
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); }
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()); }
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()); }
public object VisitBackreference(Backreference backreference, object data) { throw new NotImplementedException(); }