我正在尝试使用正则表达式从字符向量中提取某些元素。例如,我想提取包含字符 'abc'
的所有元素和'5'
以该顺序。 'abc'
之前可以有字符,在'abc'
之间和'5'
,以及 '5'
之后
这是我之前想到的。我在用着 。指示任何内容(或不指示任何内容)。
testvec = c('abc5', 'bc5', 'abc', 'aaabc3fs55')
grepl('.abc.5.', testvec, value = TRUE)
正确答案应该是
'abc5', 'aaabc3fs55'
我做错了什么?
最佳答案
grep('abc.*5', testvec, value = TRUE)
# [1] "abc5" "aaabc3fs55"
同时,您的 .abc.5.
表示:任何单个符号、abc、任何单个符号、5、任何单个符号。
对于abc.*5
,我指定 abc 和 5 之间可以有多个字符,并且没有必要(在您的情况下)说明它们之后和之前发生的情况;即,没有任何限制,grep
只是在 testvec
元素中查找 abc.*5
。
关于R正则表达式: how to extract elements that contains two character in a certain order?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53466660/