J'essaie de normaliser certaines chaînes de données bizarres en utilisant des expressions régulières et str_replace_all
. Dans certains cas, je souhaite utiliser des jeux de caractères (par exemple [abc]
) ou des "caractères de remplacement" (par exemple \d
) pour localiser un caractère à remplacer, mais je ne veux pas remplacer ces jeux de caractères ou ces caractères génériques.
En dessous, data
est le type de données que j'ai et clean
c'est ce que j'essaie d'obtenir :
data <- c("1ac 2b", "1 a", "1a b", "1a2b", "0")
clean <- c("1ac 2b", "1a", "1ab", "1a 2b", "0")
J'ai essayé d'élaborer des commandes telles que celles qui suivent :
attempt1 <- str_replace_all(data, "[abc]\\d", "[abc] \\d")
attempt2 <- str_replace_all(data, " [abc]", "[abc])
Dans ces deux tentatives, je finis par perdre les données que je veux.
Il semble que le deuxième argument de str_replace_all
accepte les expressions régulières mais le troisième argument est évalué littéralement, ce qui fait que je me retrouve à remplacer des caractères que je ne veux pas remplacer.
Existe-t-il un moyen de transférer la valeur du caractère générique et des jeux de caractères de la partie expression régulière de la commande au composant remplacement ? Sinon, y a-t-il une méthode entièrement différente pour résoudre ce problème que quelqu'un pourrait recommander ?
Par ailleurs, je suis novice en matière d'expressions régulières, et si quelqu'un me donne un meilleur terme que "wildcards", je modifierai mon message en conséquence.