最初の ")" を取得して文字列を分割する strsplit コマンドを書きたいと思います。
例えば:
f("12)34)56")
"12" "34)56"
他の関連する正規表現SOの質問をいくつか読みましたが、これについて頭や尾を立てることができないのではないかと心配しています。ご協力ありがとうございます。
最初の一致を取得したstrsplit
場合と同じリスト型の結果を取得し、次に の逆の結果を取得できます。regexpr
regmatches
x <- "12)34)56"
regmatches(x, regexpr(")", x), invert = TRUE)
# [[1]]
# [1] "12" "34)56"
文字がどこにあるかを特定してから、その両側をサブストリング化する方が安全かもしれません。
x <- "12)34)56"
spl <- regexpr(")",x)
substring(x,c(1,spl+1),c(spl-1,nchar(x)))
#[1] "12" "34)56"
別のオプションはstr_split
、パッケージで使用することstringr
です:
library(stringr)
f <- function(string)
{
unlist(str_split(string,"\\)",n=2))
}
> f("12)34)56")
[1] "12" "34)56"