[llvm] [Support] Add `\g<ref>` backreferences in Regex::sub() (PR #67220)
    Fangrui Song via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Sep 27 22:06:04 PDT 2023
    
    
  
================
@@ -127,6 +127,22 @@ TEST_F(RegexTest, Substitution) {
 
   EXPECT_EQ("aber", Regex("a[0-9]+b").sub("a\\100b", "a1234ber", &Error));
   EXPECT_EQ(Error, "invalid backreference string '100'");
+
+  EXPECT_EQ("012345", Regex("a([0-9]+).*").sub("0\\g<1>5", "a1234ber", &Error));
+  EXPECT_EQ("", Error);
+
+  EXPECT_EQ("0g<15", Regex("a([0-9]+).*").sub("0\\g<15", "a1234ber", &Error));
+  EXPECT_EQ("", Error);
+
+  EXPECT_EQ("0g<>15", Regex("a([0-9]+).*").sub("0\\g<>15", "a1234ber", &Error));
+  EXPECT_EQ("", Error);
+
+  EXPECT_EQ("0g<3e>1",
+            Regex("a([0-9]+).*").sub("0\\g<3e>1", "a1234ber", &Error));
+  EXPECT_EQ("", Error);
+
----------------
MaskRay wrote:
Add a test demonstrating `\\g<10>` referencing the 10th capture group.
https://github.com/llvm/llvm-project/pull/67220
    
    
More information about the llvm-commits
mailing list