2016-08-05 29 views
0

ich habe:R: wie regex verwenden ein Element erschienen mehrere Mal durch einzelne von ihnen zu ersetzen

txt= 'finance . . . . . lottery ticket . . . community' 

versuchen, zu erhalten:

txt2 = 'finance.lottery ticket.community' 

aber folgendes nicht funktioniert:

gsub('[[:punct:]]{2,}','',txt) 

Habe ich hier etwas falsch gemacht? Vielen Dank!

+1

Versuchen 'gsub (‘ * ([[: punct:]] *) + ','. ', txt) ' – horcrux

+0

@horcrux danke! realisierte nur, dass ich den Raum nicht einbezogen habe – snowneji

Antwort

1

Es gibt Räume zwischen . in Ihrem Text, müssen Sie das auch in Ihrem regex sind:

gsub('(\\s?[[:punct:]]\\s?){2,}','.',txt) 
# [1] "finance.lottery ticket.community" 
0

Eine weitere Option ist

gsub('(\\s*[.]\\s*)+','.',txt) 
#[1] "finance.lottery ticket.community"