誰かが式内の文字列の n 番目の出現を見つける方法と、それを正規表現で置き換える方法を知っていますか?
たとえば、次の文字列があります
txt <- "aaa-aaa-aaa-aaa-aaa-aaa-aaa-aaa-aaa-aaa"
5 番目の「-」を「|」に置き換えたい "||" による "-" の 7 回目の出現 お気に入り
[1] aaa-aaa-aaa-aaa-aaa|aaa-aaa||aaa-aaa-aaa
どうすればいいですか?
ありがとう、フロリアン
誰かが式内の文字列の n 番目の出現を見つける方法と、それを正規表現で置き換える方法を知っていますか?
たとえば、次の文字列があります
txt <- "aaa-aaa-aaa-aaa-aaa-aaa-aaa-aaa-aaa-aaa"
5 番目の「-」を「|」に置き換えたい "||" による "-" の 7 回目の出現 お気に入り
[1] aaa-aaa-aaa-aaa-aaa|aaa-aaa||aaa-aaa-aaa
どうすればいいですか?
ありがとう、フロリアン
stringr
別の可能性は、私が書いた関数の基礎を構築するHadley のパッケージを使用することです。
require(stringr)
replace.nth <- function(string, pattern, replacement, n) {
locations <- str_locate_all(string, pattern)
str_sub(string, locations[[1]][n, 1], locations[[1]][n, 2]) <- replacement
string
}
txt <- "aaa-aaa-aaa-aaa-aaa-aaa-aaa-aaa-aaa-aaa"
txt.new <- replace.nth(txt, "-", "|", 5)
txt.new <- replace.nth(txt.new, "-", "||", 7)
txt.new
# [1] "aaa-aaa-aaa-aaa-aaa|aaa-aaa-aaa||aaa-aaa"