我有以下内容:
x <- c("Sao Paulo - Paulista - SP", "Minas Gerais - Mineiro - MG", "Rio de Janeiro - Carioca -RJ")
我想保留“ Paulista”,“ Mineiro”,“ Carioca”
我正在尝试gsub之类
y <- gsub("\\$-*","",x)
但不起作用。
答案 0 :(得分:3)
两种快速方法:
{"git":{"commit":{"time":"2018-11-03T15:22:51Z","id":"caa2ef0"},"branch":"master","dirty":"true"}}
这首先是标准的generateContent()
解决方案;如果存在不带连字符的字符串,它将返回未修改的完整字符串。
<a href="#id" ><button type="button" class="btn btn-warning btn-lg">Reserve Table</button></a>
在x<- c(" Sao Paulo - Paulista - SP", "Minas Gerais - Mineiro - MG", "Rio de Janeiro - Carioca -RJ")
内:
sub
下一个是通过将trimws(sub("^[^-]*-([^-]*)-.*$", "\\1", x))
# [1] "Paulista" "Mineiro" "Carioca"
的字符串拆分为sub
来工作的,然后为第二个元素建立索引。如果存在不带连字符的字符串,则会出现"^[^-]*-([^-]*)-.*$"
^ beginning of each string, avoids mid-string matches
[^-]* matches 0 or more non-hyphen characters
- literal hyphen
([^-]*) matches and stores 0 or more non-hyphen charactesr
- literal hyphen
.* 0 or more of anything (incl hyphens)
5 end of each string
"\\1" replace everything that matches with the stored substring
错误。
"-"
对list
的呼叫示例:
subscript out of bounds
...因此,第二个元素是trimws(sapply(strsplit(x, "-"), `[[`, 2))
# [1] "Paulista" "Mineiro" "Carioca"
(带有额外的前导/尾随空格)。周围的strsplit
总是抓住第二个元素(这是字符串不匹配时发生的错误)。
两种解决方案都使用strsplit(x[[1]], "-")
# [[1]]
# [1] " Sao Paulo " " Paulista " " SP"
来减少前导和尾随空格。
答案 1 :(得分:2)
我们可以通过一次调用[0,1,1,1,1,2,2,1,1,1,0,0]
来做到这一点:
ts["Flagg"]
想法是捕获每个位置的两个破折号之间发生的任何事情。
template <typename T, std::size_t N>
constexpr std::size_t arrsize(T (&)[N]) {
return N;
}