[R] why does regexpr not work with '.'

0 views
Skip to first unread message

Jonathan Williams

unread,
Apr 15, 2008, 6:27:14 AM4/15/08
to r-h...@r-project.org
Dear R Helpers,

I am running R 2.6.2 on a Windows XP machine.

I am trying to use regexpr to locate full stops in strings, but, without
success.

Here an example:-

f="a,b.c@d:" #define an arbitrary test string
regexpr(',',f) #find the occurrences of ',' in f - should be one at location
2
# and this is what regexpr finds
#[1] 2
#attr(,"match.length")
#[1] 1

regexpr('@',f) #find occurrences of '@' in f - should be one at location 6
# and this is what regexpr finds
#[1] 6
#attr(,"match.length")
#[1] 1

regexpr('.',f) #find the occurrences '.' in f - should be one at location 4
# but regexpr gives 1 at location 1
#[1] 1
#attr(,"match.length")
#[1] 1

Sorry if I am missing something obvious. I'd be very grateful if someone
would
please show me how to use regexpr to locate '.' in my string!

Thanks,

Jonathan Williams

______________________________________________
R-h...@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.

jim holtman

unread,
Apr 15, 2008, 6:31:30 AM4/15/08
to jonathan...@dpag.ox.ac.uk, r-h...@r-project.org
In a regular expression, '.' matches any character, which will be the
first one. If you want to match a period, you have to escape it:

> f="a,b.c@d:" #define an arbitrary test string

> regexpr('.',f)
[1] 1
attr(,"match.length")


[1] 1
> regexpr('\\.',f)

[1] 4
attr(,"match.length")
[1] 1
>

--
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

Reply all
Reply to author
Forward
0 new messages