Menu
Coddy logo textTech

Remplacer du texte

Fait partie de la section Logique et flux d’exécution du Journey R de Coddy. Leçon 5 sur 64.

sub(pattern, replacement, x) remplace la première correspondance dans chaque chaîne, et gsub() remplace toutes les correspondances. Comme avec grepl(), fixed = TRUE traite le motif comme du texte brut.

date <- "2024-01-15"
print(sub("-", "/", date, fixed = TRUE))
print(gsub("-", "/", date, fixed = TRUE))

Sortie :

[1] "2024/01-15"
[1] "2024/01/15"

Remplacer par une chaîne vide supprime les correspondances. Cela nettoie le texte avant de le convertir en nombre :

price <- "$1,299.00"
clean <- gsub(",", "", sub("$", "", price, fixed = TRUE), fixed = TRUE)
print(clean)
print(as.numeric(clean) * 2)

Sortie :

[1] "1299.00"
[1] 2598

Sans fixed = TRUE, le motif est une expression régulière. Deux éléments utiles : [0-9] correspond à n’importe quel chiffre, et + répète l’élément qui le précède une ou plusieurs fois, donc " +" correspond à une suite d’espaces.

msg <- "call  me   at 555 0199"
print(gsub(" +", " ", msg))
print(gsub("[0-9]", "#", msg))

Sortie :

[1] "call me at 555 0199"
[1] "call  me   at ### ####"

Comme les autres fonctions de chaînes de caractères, sub() et gsub() fonctionnent sur chaque élément d’un vecteur :

codes <- c("a-1", "b-22", "c-3")
print(gsub("-", "", codes, fixed = TRUE))
print(sub("-[0-9]+", "", codes))

Sortie :

[1] "a1"  "b22" "c3" 
[1] "a" "b" "c"
challenge icon

Défi

Facile

Complétez slugify(title). Renvoyez le titre en minuscules, sans espaces au début ni à la fin, et en remplaçant chaque suite d’espaces par un seul - : Hello World devient hello-world.

Le code fourni lit le titre et affiche la valeur renvoyée.

Essayez vous-même

slugify <- function(title) {
  # Écrivez votre code ici
  title
}

# Code d'entrée/sortie fourni : gardez-le tel quel
input <- suppressWarnings(readLines(file("stdin")))
cat(slugify(input[1]), sep = "\n")
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et flux d’exécution

Entraînez-vous par vous-même : Compilateur R en ligne