Skip to content

gsub and regex to tidy comma-limited values

4 messages · Daren Tan, Gabor Grothendieck, Tom +1 more

#
I am cleaning up comma-limited values, so that only one comma
separates each value. Using the example below, as much as I try with
regex, I can't remove the last comma. I hope to have a one-liner
solution, if possible.

gsub("^,*|,*$|(,)*", "\\1", ",,,apple,,orange,,,,,lemon,strawberry,,,,")
[1] "apple,orange,lemon,strawberry,"
#
Add perl = TRUE
On Sat, Mar 14, 2009 at 5:42 AM, Daren Tan <darentan76 at gmail.com> wrote:
Tom
#
sub(",$","",gsub("^,*|,*$|(,)*", "\\1", 
",,,apple,,orange,,,,,lemon,strawberry,,,,"))

It may not be the best solution, but it was my first thought

Tom

----- Original Message ----- 
From: "Daren Tan" <darentan76 at gmail.com>
To: <r-help at r-project.org>
Sent: Saturday, March 14, 2009 6:42 PM
Subject: [R] gsub and regex to tidy comma-limited values
#
with the example below, i think the following solves your problem:

    text = ',,,apple,,orange,,,,,lemon,strawberry,,,,'
    gsub('^,+|,+(?=,)|,+$', '', text, perl=TRUE)

vQ
Tom wrote: