[R] Special characters in regular expressions

peter dalgaard pdalgd at gmail.com
Thu Sep 24 12:38:28 CEST 2015


On 24 Sep 2015, at 12:05 , Thierry Onkelinx <thierry.onkelinx at inbo.be> wrote:

> gsub("[A|K]\\|", "", x)

That'll probably do it, but what was the point of the | in [A|K] ?? I don't think it does what I think you think it does...

Somewhat safer, maybe:

gsub("\\|[AK]\\|","\\|", x)

(avoids surprises from, say, "LBAM 5|A|15A|3h")

-pd

> [snip]
> 2015-09-24 11:52 GMT+02:00 Patrick Connolly <p_connolly at slingshot.co.nz>:
> 
>> I need to change a vector dd that looks like this:
>> c("LBAM 5|A|15C|3h", "LBAM 5|K|15C|2h")
>> 
>> into this:
>> c("LBAM 5|15C|3h", "LBAM 5|15C|2h")
>> 
>> It's not very imaginative, but I could use a complicated nesting of
>> gsub() as so:
>> 
>> gsub("-", "\\|", gsub("K-", "", gsub("A-", "", gsub("\\|", "-", dd))))
>> 
>> Or I could make it a bit more readable by using interim objects,
>> 
>> But I'd prefer to use a single regular expression that can detect "A|"
>> *and* "K|" without collateral damage from the impact of special
>> characters and regular characters.
>> 

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-help mailing list