请帮助我在R中的gsub代码中提取9045
和GT200
来自DT-9045-BIN1-C-A1, DT-GT200-BIN5-E-A2
它们出现在数据框中。
数据框有1000个条目
需要从每个条目中提取
即在第一个“ - ”和第二个“ - ”之间提取
答案 0 :(得分:3)
我们可以使用gsub
。匹配字符串的开头(-
)之后的[^-]+
(^
)的一个或多个字符的模式,后跟-
或({{1} } |
后跟字符(-
)并将其替换为空白(.*
)
""
或另一个选项是gsub("^[^-]+-|-.*", "", str1)
#[1] "9045" "GT200"
我们匹配不是sub
后跟-
的字符,然后捕获不是-
的字符作为一个组({ {1}})后跟-
和其他字符,将其替换为所捕获组的反向引用(([^-]+)
)
-
或者使用带有正则表达式外观的\\1
来匹配sub("^[^-]+-([^-]+)-.*", "\\1", str1)
#[1] "9045" "GT200"
之后不是str_extract
的一个或多个字符。 -
只会提取第一个实例以获得预期的输出
-
str_extract