我只想找到包含重复单词HALL的行(不止一次)。例如,"HALL #1 HALL #2 HALL #3"
。我试着用
grepl("HALL{2,}", "HALL #1 HALL #2 HALL #3")
但grepl
返回FALSE
。我做错了什么?
答案 0 :(得分:3)
您可以使用stringr
,
str_count("HALL #1 HALL #2 HALL #3", 'HALL')>1
#[1] TRUE
答案 1 :(得分:3)
您可以使用(?:.*?HALL.*?){2,}
:
grepl("(?:.*?HALL.*?){2,}", "HALL #1 HALL #2 HALL #3")
#[1] TRUE
Here is a breakdown上述正则表达式。
答案 2 :(得分:1)
{2,}
表示在它之前匹配字符两次或更多次。因此,如果你想匹配HALL
模式,你需要在它周围放一个括号,而且似乎你不是要连续匹配HALL
,所以你需要填充模式一点点。以下应该做的工作:
grepl("(.*HALL.*){2,}", "HALL #1 HALL #2 HALL #3")
[1] TRUE