我正在寻找一个grep的方式来获得字符串中的第一个空格之前的字符。
我已经破解了以下函数,因为我不知道如何使用R
中的grep
类型命令来实现它。
有人可以帮助grep
解决方案-如果有一个...
beforeSpace <- function(inWords) {
vapply(inWords, function(L) strsplit(L, "[[:space:]]")[[1]][1], FUN.VALUE = 'character')
}
words <- c("the quick", "brown dogs were", "lazier than quick foxes")
beforeSpace(words)
R> the quick brown dogs were lazier than quick foxes
"the" "brown" "lazier"
如果有比grep
(或我的函数beforeSpace
)更好的方法,请告诉我。
4条答案
按热度按时间rkue9o1l1#
或者只是
sub
,@flodel:ecr0jaav2#
您可以使用
qdap
的beg2char
(字符串的开头到特定字符),如下所示:yzckvree3#
使用
stringi
2vuwiymt4#
将
tidyverse
中的stringr
-包与regex()
一起使用解构正则表达式:
^
表示在行的开始处开始匹配。\S
匹配任何非空格字符(与\s
相反)。我们在这里为this reason使用了一个额外的转义反斜杠,因此它变成了\\S
*
匹配前一个模式0到无限次。这意味着我们继续寻找更多的非空格字符,直到我们找到一个空格。