正则表达式匹配在字符串中重复两次的前几个字符

问题描述 投票:1回答:2

我面临一个问题,即发现所有用R语言在字符串中重复两次]的前几个(> = 2)个字符。例如:>

字符串应选择

(1)all

ochir all y ------>前三个字符“ all”在字符串中重复两次(2)froufrou ------>前4个字符“ frou”在字符串中重复两次(3)under gro under ------>前5个字符“ under”在字符串中重复两次

字符串应NOT选出

(1)语法------>甚至第一个字符'g'重复了两次,但只有1个字符,不符合条件,因为> = 2个第一个字符(2)女神------>前几个字符不重复两次(3)kgashga ------>甚至'ga'重复了两次,但不包括第一个字符'k',不符合要求包括第一个字符的条件

关于backreference的声音(例如\ b或\ w)可能会有所帮助,但仍然无法弄清楚,您能帮忙弄清楚吗?

注意:我看到有一个功能用作xmatch <- str_extract_all(x, regex) == x,即str_extract_all中的library(stringr)

如果非常简洁

宁愿!!谢谢

我面临一个问题,即找到所有用R语言在字符串中重复两次的前几个(> = 2)个字符的字符串。例如,字符串应按分配比例(1)------>前3个...

r regex string pattern-matching regular-language
2个回答
1
投票

使用grepl

x <- c("allochirally", "froufrou", "undergrounder", "gummage", "hypergoddess", "kgashga")
grepl("^(.{2,}).*\\1.*$", x)

[1]  TRUE  TRUE  TRUE FALSE FALSE FALSE

0
投票

怎么样:

© www.soinside.com 2019 - 2024. All rights reserved.