【发布时间】:2020-02-13 10:42:04
【问题描述】:
我遇到了一个问题,即在 R 语言的字符串中查找所有 前几个 (>=2) 个字符 重复 两次 的字符串。
例如
字符串应该选择出来
(1) allochirally ------>前3个字符'all'在字符串中重复两次
(2) froufrou ------> 前 4 个字符 'frou' 在字符串中重复两次
(3) undergrounder ------>前5个字符'under'在字符串中重复两次
字符串应该不选择出来
(1) gummage ------> 甚至第一个字符 'g' 重复了两次,但只有 1 个字符,不匹配条件为 >=2 个第一个字符
(2) hypergoddess ------>前几个字符没有重复两次
(3) kgashga ------>甚至'ga'重复了两次,但不包括第一个字符'k',不匹配需要包括第一个字符的条件
听说过 backreference(例如 \b 或 \w)可能会有所帮助,但仍然无法弄清楚,您能帮忙弄清楚吗?
注意:我看到有一个函数xmatch <- str_extract_all(x, regex) == x作为使用方法,str_extract_all来自library(stringr)
x <- c("allochirally", "froufrou", "undergrounder", "gummage", "hypergoddess", "kgashga")
regex <- "as described details here"
function(x, regex) {
xmatch <- str_extract_all(x, regex) == x
matched_x <- x[xmatch]
}
如果很简洁就好了!!谢谢
【问题讨论】:
-
这些似乎是作业的一部分。了解更多
标签: r regex string regular-language