【问题标题】:How to select a portion of a string in R? [closed]如何在R中选择字符串的一部分? [关闭]
【发布时间】:2017-05-23 16:35:06
【问题描述】:

我在一个大文本文件中有如下字符串。如何只选择第二行中"SN="":2832397" 之间的部分,即"RK:7573-0"

SIGN="000F 0E70 FA83 B72F D215 C7EE 4AF4 6440 A547 12B1 0603 \

SN=RK:7573-0:2832397:369963

1086 0857 BFF1 5FC2 CE6F C87D 7C00 DF64 C1AD DD39") }

【问题讨论】:

标签: r regex string subset


【解决方案1】:

我们可以使用str_extract

library(stringr)
as.vector(na.omit(str_extract(lines, "(?<=SN=).*(?=:2832397)")))
#[1] "RK:7573-0"

base R

gsub("^[^=]+\\=|(:\\d+){2,}$", "", grep("SN=", lines, value = TRUE))
#[1] "RK:7573-0"

【讨论】:

    【解决方案2】:

    您可以从这样的正则表达式开始:

    SN=([A-Z]+:[\d-]+):

    示例:https://regex101.com/r/0qBwYc/1

    解释:

    SN= => 匹配文字 "SN="

    [A-Z]+ => 匹配 1 或任何大写

    : => 匹配文字“:”

    [\d-]+ => 匹配任何数字或字符“-”1次或更多

    : => 匹配文字“:”

    ([A-Z]+:[\d-]+) => 括号用于创建匹配组,因此您只能获取匹配“[A-Z]+:[\d-]+”的部分

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多