R - 根据列的长度提取字符串

时间:2016-10-04 06:27:37

标签: r regex

如果长度介于6-10之间,我想从列中提取字符串。这些字符串用空格分隔。

示例:

composer require barryvdh/laravel-cors

输出应为:

Column A

" 3 89 -90/ 900407-2"
" 3 9 -90/ 900407-1"
"  89 -9011/ 800408"

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

试试这个:

([\w+\-]){6,}

将每个字符串与"匹配 - ",{6,}表示6或更多..

在这里演示:https://regex101.com/r/3BjrLW/1

答案 1 :(得分:0)

使用此:

A <- c(" 3 89 -90/ 900407-2",
       " 3 9 -90/ 900407-1",
       "  89 -9011/ 800408")
gsub(".*/.*([0-9].*?)", "\\1", A)
#[1] "900407-2" "900407-1" "800408"  

答案 2 :(得分:0)

尝试使用以下内容:

x <- gsub(".* (.*)", "\\1", x)

如果要限制为6到10个字符的字符串,减去连字符,可以使用:

lens <- nchar(gsub("-", "", x))  
x <- x[lens >= 6 & lens <= 10]