我在这里有一些字符串,它们是:
12ABC3, 2ABC45, ABC 56, uhyABC, REGEXP ...
目标是只要字符串中有'ABC'(不是'BCA'或'BAC'),使用'grepl'时它应该返回TRUE
所以输出应该是
TRUE, TRUE, TRUE, TRUE, FALSE
有人可以帮我吗?
提前致谢
答案 0 :(得分:5)
您希望在致电fixed = TRUE
时使用grepl
。
> x <- c("12ABC3", "2ABC45", "ABC 56", "uhyABC", "REGEXP", "BCA", "CAB")
> grepl("ABC", x, fixed = TRUE)
# [1] TRUE TRUE TRUE TRUE FALSE FALSE FALSE
fixed
参数定义是
逻辑。如果为TRUE,则pattern是要按原样匹配的字符串。覆盖所有冲突的参数。
答案 1 :(得分:3)
您可以使用以下内容。
> x <- c('12ABC3', '2ABC45', 'ABC 56', 'uhyABC', 'REGEXP')
> grepl('ABC', x, fixed=T)
# [1] TRUE TRUE TRUE TRUE FALSE
> x[grepl('ABC', x, fixed=T)]
# [1] "12ABC3" "2ABC45" "ABC 56" "uhyABC"
答案 2 :(得分:1)
这个表达式怎么样:\w*ABC[\w\s]*
\w*
匹配任何字词[a-zA-Z0-9_]
*
都会使其匹配从0到无限次。
\w\s]*
匹配任何单词字符[a-zA-Z0-9_ ]
,此单词包含您的第四个表达式中的空格,*
将使其匹配从0到无限次。