5

誰かが式内の文字列の 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

どうすればいいですか?

ありがとう、フロリアン

4

3 に答える 3

4

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"
于 2013-05-28T10:43:15.220 に答える