R正则表达式:如何提取按特定顺序包含两个字符的元素?

时间:2018-11-25 10:40:00

标签: r regex text

我正在尝试使用正则表达式从字符向量中提取某些元素。例如,我要提取按此顺序包含字符'abc''5'的所有元素。 'abc'之前,'abc''5'之间以及'5'之后的字符

这是我之前想出的。我在用着 。表示什么(或什么都不表示)。

testvec = c('abc5', 'bc5', 'abc', 'aaabc3fs55')
grepl('.abc.5.', testvec, value = TRUE)

正确答案应该是

'abc5',   'aaabc3fs55'

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

grep('abc.*5', testvec, value = TRUE)
# [1] "abc5"       "aaabc3fs55"

与此同时,您的.abc.5.意味着:任何单个符号abc,任何单个符号,5,任何单个符号。

我使用abc.*5指定了abc和5之间可以有多个字符,(对于您而言)没有必要说出它们之后和之前发生的事情。即没有任何约束,grep只是在abc.*5的元素中寻找testvec