R:如何使用正则表达式替换其中一个元素多次出现的元素

R: how to use regex to substitute an element appeared multiple time by single one of them

我有:

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

正在尝试获取:

txt2 = 'finance.lottery ticket.community'

但以下方法无效:

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

我是不是做错了什么?谢谢!

您的文本 . 之间有空格,您也需要将其包含在您的正则表达式中:

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

另一种选择是

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