【问题标题】:R regular expression: how to extract elements that contains two character in a certain order?R正则表达式:如何按一定顺序提取包含两个字符的元素?
【发布时间】:2019-04-27 05:52:54
【问题描述】:

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

这是我之前想出的。我正在使用 。表示任何东西(或什么都没有)。

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

正确答案应该是

'abc5',   'aaabc3fs55'

我做错了什么?

【问题讨论】:

    标签: r regex text


    【解决方案1】:
    grep('abc.*5', testvec, value = TRUE)
    # [1] "abc5"       "aaabc3fs55"
    

    同时你的.abc.5.表示:任意单个符号,abc,任意单个符号,5,任意单个符号。

    abc.*5 中,我指定在 abc 和 5 之间可以有多个字符,并且没有必要(在你的情况下)说明它们之后和之前发生的事情;也就是说,没有限制,grep 只是在 testvec 的元素中的某处寻找 abc.*5

    【讨论】:

      猜你喜欢
      • 2021-02-24
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多