尽管我已经在stackoverflow中进行了搜索,以寻找各种gsub答案,但是我找不到适用于我拥有的数据的代码。我想创建一个新列,以提取第一个和最后一个下划线之间的所有字母。
Test <- as.data.frame(c("A_YES_X","A_Yes_YES_X"))
colnames(Test)[1] <- "test"
因此在上面的示例中,这将是我需要的输出。
Test$Output <- c("YES","Yes_YES")
提前谢谢
答案 0 :(得分:5)
您可以使用^[^_]*_
找到字符串的一部分,该部分是第一个_(包括它)之前的所有内容,而使用_[^_]*$
找到最后一个_(包括它)之后的所有内容。您可以使用gsub
删除它们:
gsub("_[^_]*$|^[^_]*_","",test,perl=T)
[1] "YES" "Yes_YES"
答案 1 :(得分:1)
尝试
x <- c("A_YES_X","A_Yes_YES_X")
stringi::stri_extract(x, regex = '(?<=_).*(?=_)')
#[1] "YES" "Yes_YES"
答案 2 :(得分:1)
或者仅提取捕获的模式“在第一个和最后一个_之间有一个或多个字符(。+)(由@Lamia进行了很好的解释)。
let deadline = '2019-03-13T17:46:08Z';
function () {
let timeRemaining = moment().countdown(new Date(deadline).toString(), countdown.DAYS | countdown.HOURS |
countdown.MINUTES | countdown.SECONDS);
}
setInterval(() => this._computeTimeLeft(), 1000);