【发布时间】:2015-06-18 18:53:25
【问题描述】:
我需要匹配前面有两个不同元音的任何“r”。例如,'our' 或 'pear' 会匹配,但 'bar' 或 'aar' 不会。我确实设法匹配了两个不同的元音,但我仍然无法使后面的“r”成为条件(...)。 (?<=...)r 和 ...\\Kr 都不会产生任何结果。有什么想法吗?
x <- c('([aeiou])(?!\\1)(?=(?1))')
y <- c('our','pear','bar','aar')
y[grepl(paste0(x,collapse=''),y,perl=T)]
## [1] "our" "pear"`
【问题讨论】:
-
skip&fail 动词的经典用例:regex101.com/r/qC9kO2/1
-
蛮力方法:
combos<-combn(c("a","e","i","o","u"),2);grepl(paste0("(",paste(c(paste0(combos[1,],combos[2,]),paste0(combos[2,],combos[1,])),collapse="|"),")r"),y)。很丑,觉得还不够好回答:) -
@HamZa,为什么不回答?
-
@Pouya 我在玩。这只是一个评论,而不是一个完整的答案。您可以通过解释对其进行扩展并将其作为答案发布。
-
感谢@HamZa 的解决方案和解释!
标签: regex r backreference