繁体   English   中英

正则表达式匹配R中具有相同编号的模式

[英]Regex to match a pattern with same number in 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

像这样?

^ma_(\d+)_\1_\1$

参见regex101.com上的演示
这将对第一个捕获的组以及锚点使用反向引用。

使用后向引用使正则表达式再次与先前的组匹配:

ma_(100|[1-9][0-9]?)_\1_\1\b

Regex101演示

这还将验证数字是否在范围内。 如果不需要此验证,请对捕获组使用(\\d+)

此答案是对@ 4castle的修改,它将仅提取具有相似数字的字符串。

grep("ma_(100|[0-9][0-9]|[0-9])(_\\1)(_\\1)\\b", stringList, value = T)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM