David Hajage wrote: > Thank you, it's perfect. > to extend the context, if you were to solve the problem in perl, the regex below would work in perl 5.10, but not in earlier versions of perl; another approach is to replace the unwanted leading characters with equally many replacement characters at once.
$string = 'aabaab'; # perl 5.10 $string =~ s/a|(*COMMIT)(*FAIL)/c/g # $string is 'ccbaab' # any recent perl $string =~ s/^a*/'c' x length $&/e; # $string is 'ccbaab' i don't know how (if) the latter could be done in r. vQ > david > > 2009/1/30 Wacek Kusnierczyk <waclaw.marcin.kusnierc...@idi.ntnu.no> > > >> David Hajage wrote: >> >>> Hello R users, >>> >>> I have a string, for example: >>> x <- "\t\tabc\t def" >>> >>> This string can contain any number of tabulations. I want to replace each >>> tabulation of the begining of the string by the same number of space: >>> " abc\t def" >>> >>> I'm trying to do this with gsub : >>> >>> >>>> gsub("\t", " ", x) # replace every \t >>>> >>>> >>> [1] " abc def" >>> >>> >>>> sub("^\t", " ", x) # replace only the first \t >>>> >>>> >>> [1] " \tabc\t def" >>> >>> >>>> sub("^\t*", " ", x) # replace all beginning \t, but only one space >>>> >>>> >>> [1] " abc\t def" >>> >>> How can I do this ? >>> >>> >>> >> there may be better solutions, but this should do: >> >> strings = c('pure', '\t<- 1 removed', '\t\t<- 2 removed, 1 left ->\t') >> gsub('\t|(*COMMIT)(*FAIL)', ' ', strings, perl=TRUE) >> # "pure" " <- 1 removed" " <- 2 removed, 1 left ->\t" >> >> vQ >> >> >> >> ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.