Skip to content
Back to formatted view

Raw Message

Message-ID: <51117916.5080906@gmail.com>
Date: 2013-02-05T21:26:46Z
From: Duncan Murdoch
Subject: R Regular Expressions - Metacharacters
In-Reply-To: <CAOAmvdxZcuQkAoU91mQGr=Xk9Aam5nKGRMHOY10yF3_8vsj-Mw@mail.gmail.com>

On 05/02/2013 12:49 PM, Seth Dickey wrote:
> I thought that I can use metacharacters such as \w to match word characters
> with one backslash.  But for some reason, I need to include two backslashes.
>
> > grepl(pattern='\w', x="what")
> Error: '\w' is an unrecognized escape in character string starting "\w"
>
> > grepl(pattern='\\w', x="what")
> [1] TRUE
>
> I can't find the reason for this on the help pages.  Does anyone know why?

grepl wants a string containing a single backslash.  R uses the 
backslash as an escape character, so you need to double it in your 
source, so the string ends up containing just one.

"\w" is interpreted by R as an escaped w, which doesn't make sense.

"\\w" is interpreted by R as a backslash followed by a w, and then the 
\w is interpreted by grepl the way you want.

Duncan Murdoch