Je suis un nouveau venu pour les expressions régulières, alors s'il vous plaît ours avec moi.R: Supprimer les points dans le texte, mais pas ceux marquant les points décimaux
J'ai une chaîne comme ceci:
txt1 <- 'a,b,a.b,a.,1,2,1.2,1.,.,11,222,11.222,11.'
Imaginez qu'il est d'une .csv et chaque cellule est séparée par « ». Maintenant, je voudrais supprimer tous les '.' sauf ceux marquant les points décimaux. En cette fin, je voudrais finir avec quelque chose comme ceci:
txt2 <- 'a,b,ab,a,1,2,1.2,1,,11,222,11.222,11'
J'ai essayé les codes suivants:
txt2 <- gsub(pattern = '[^a-z0-9,(\\d\\.\\d)]', replacement = '', text = txt1)
txt2 <- gsub(pattern = '[^a-z0-9,|(\\d\\.\\d)]', replacement = '', text = txt1)
Mais ni œuvres, à la fois le retour
> print(txt2)
[1] "a,b,a.b,a.,1,2,1.2,1.,.,11,222,11.222,11."
Une idée de comment je pourrais corriger mes codes? Merci!
Quel est le but de mettre '\ .' dans un groupe de capture ici? – CAustin
Il n'y a pas besoin de lookbehind, voir ci-dessus deux réponses. –
Merci beaucoup pour l'explication détaillée. C'est très utile! – Xiangyu