2017-04-12 3 views
2

Je souhaite remplacer les accolades {} par des guillemets". J'ai essayé le code suivant, le problème est que le \ appaers dans la chaîne et je ne peux pas le supprimer.Substituer des accolades {} avec des guillemets "

code utilisé:

makebib <- function(string){ 
    # replace { by " 
    string <- gsub("\\{",'"',string) 

    # replace } by " 
    string <- gsub("\\}",'"',string) 

    # delete \ 
    string <- gsub("\\","",string,fixed = TRUE) 

    return(string) 
} 

test <- "bla{bla}" 
makebib(test) 

[1] "bla\"bla\"" 

Comment puis-je gérer que le \ n'apparaît ou le supprimer?

Répondre

1

Votre fonction fonctionne. Le \ n'est pas vraiment là.

Considérez ce qui suit:

test <- "bla{bla}" 
makebib(test) 
# [1] "bla\"bla\"" 

cat(makebib(test)) 
# bla"bla" 

nchar(makebib(test)) 
# [1] 8 

Par ailleurs, votre fonction pourrait également être simplifiée:

makebib <- function(string) gsub("[{}]", "\"", string)