On 13-03-2012, at 11:28, Igor Sosa Mayor wrote:

> many thanks, Berend.
> 
> It works well... but with a problem because i was not completely clear
> in my first email.
> 
> It works with cases such as:
> Franco (El)
> Regueras (Las)
> 
> but not with other cases such as:
> Fauces de San Andrés (Las)
> 
> any hints? or meaybe if it is very complicated, any short explanation of
> the perl expression you wrote (as far as I can understand, the point is
> this \\3 \\1...).


Try this

gsub("([^\\(]+)(\\()(.*)(\\))","\\3 \\1", municipios, perl=TRUE)

([^\\(]+)   look for a sequence of characters not (, this becomes the \1

(\\()         match (

(.*)          match zero or more anything, this becomes \3

(\\))        match closing )

All subexpressions surrounded by ()  for backreferencing in replacement 
expression to work.

The result of the above expression will contain trailing blanks if there was a 
(El) etc.
You can get rid of those by using gsub("\\s+$","",x)

I'm in a bit of a hurry now, so I won't be able to answer further questions for 
several hours.

Berend

______________________________________________
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.

Reply via email to