我正在尝试使用正则表达式从字符向量中提取某些元素。例如,我要提取按此顺序包含字符'abc'
和'5'
的所有元素。 'abc'
之前,'abc'
和'5'
之间以及'5'
之后的字符
这是我之前想出的。我在用着 。表示什么(或什么都不表示)。
testvec = c('abc5', 'bc5', 'abc', 'aaabc3fs55')
grepl('.abc.5.', testvec, value = TRUE)
正确答案应该是
'abc5', 'aaabc3fs55'
我在做什么错了?
答案 0 :(得分:2)
grep('abc.*5', testvec, value = TRUE)
# [1] "abc5" "aaabc3fs55"
与此同时,您的.abc.5.
意味着:任何单个符号abc,任何单个符号,5,任何单个符号。
我使用abc.*5
指定了abc和5之间可以有多个字符,(对于您而言)没有必要说出它们之后和之前发生的事情。即没有任何约束,grep
只是在abc.*5
的元素中寻找testvec
。