正则表达式匹配R中具有相同数字的模式

Sri*_*ine 0 regex r

我有一组字符串,如下所示.每个字符串有3个数字,用下划线(_)分隔.每个数字都是1到100之间的值.

ma_1_1_1

ma_2_100_59

ma_29_29_29

ma_100_100_100

ma_7_72_78

ma_10_10_100

ma_4_4_49

我想写一个正则表达式,我可以得到数字相同的字符串.例如,我的输出将是

ma_1_1_1,ma_29_29_29和ma_100_100_100

Jan*_*Jan 5

像这样?

^ma_(\d+)_\1_\1$
Run Code Online (Sandbox Code Playgroud)

请参阅regex101.com上的演示.
这使用了与第一个捕获组和锚点的反向引用.

  • 我没有dvote,但它可能被推广为任何长度的重复数字,而不仅仅是两个,并用R` grep("ma _(\\ d +)(_ \\ 1)+",x)写成` (3认同)