R正则表达式: how to extract elements that contains two character in a certain order?

标签 r regex text

我正在尝试使用正则表达式从字符向量中提取某些元素。例如,我想提取包含字符 '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/

相关文章:

r - 如何在R中颠倒一个句子?

r - 如何将新的计算变量添加到数据框中

ruby - 如何检查命名组是否存在于 MatchData 对象中?

java - Android 如何修剪字符串中的多行?

performance - Flash 文本引擎的显示速度是否比典型的文本字段快?

html - 缩进背景图像占位符文本以从 View 区域中删除

r - 与 R 中的跨度相关的 LOESS 警告/错误

r - 在 r 中格式化数据框上的列

java - 使用正则表达式仅获取分隔符

hgignore 文件中的正则表达式负向后视