[R] regex question

John Fox jfox at mcmaster.ca
Tue Nov 4 02:59:52 CET 2008


Dear Ferry,

You're almost all the way there. Just apply each substitution in turn:

varReg <- "*  < <* this is my text > > "
left <- "(^[ <*]+)"
right <- "([ > ]+$)"
sub(right, "", sub(left, "", varReg))
[1] "this is my text"

I hope this helps,
 John

------------------------------
John Fox, Professor
Department of Sociology
McMaster University
Hamilton, Ontario, Canada
web: socserv.mcmaster.ca/jfox


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On
> Behalf Of Ferry
> Sent: November-03-08 8:38 PM
> To: r-help at r-project.org
> Subject: [R] regex question
> 
> hello,
> 
> i am trying to extract text using regex as follows:
> 
> "*  < <* this is my text > > "
> 
> into:
> 
> "this is my text"
> 
> below what I did:
> 
> varReg <- "*  < <* this is my text > > "
> 
> ## either this pattern
> patReg <- "(^[ <*]+)"
> ## or below patten
> patReg <- "([ > ]+$)"
> 
> sub(patReg, '', varReg)
> 
> depending of which patten I use, I could only extra the first portion
> or the last portion of the unwanted characters. how to extract both
> ends and keep my text "this is my text" ?
> 
> I have tried with gsub, as below:
> patReg <- "([ >* ]+)"
> gsub(patReg, '', varReg)
> 
> but it returned "thisismytext"
> 
> any idea is appreciated.
> 
> thanks,
> 
> ferry
> 
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list