使用数据帧中两个“ - ”之间的gsub提取字符串

时间:2017-05-25 07:56:38

标签: r regex

请帮助我在R中的gsub代码中提取9045GT200  来自DT-9045-BIN1-C-A1, DT-GT200-BIN5-E-A2 它们出现在数据框中。

数据框有1000个条目

需要从每个条目中提取

即在第一个“ - ”和第二个“ - ”之间提取

1 个答案:

答案 0 :(得分:3)

我们可以使用gsub。匹配字符串的开头(-)之后的[^-]+^)的一个或多个字符的模式,后跟-或({{1} } |后跟字符(-)并将其替换为空白(.*

""

或另一个选项是gsub("^[^-]+-|-.*", "", str1) #[1] "9045" "GT200" 我们匹配不是sub后跟-的字符,然后捕获不是-的字符作为一个组({ {1}})后跟-和其他字符,将其替换为所捕获组的反向引用(([^-]+)

-

或者使用带有正则表达式外观的\\1来匹配sub("^[^-]+-([^-]+)-.*", "\\1", str1) #[1] "9045" "GT200" 之后不是str_extract的一个或多个字符。 -只会提取第一个实例以获得预期的输出

-

数据

str_extract