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

jim holtman jholtman at gmail.com
Tue Apr 15 12:31:30 CEST 2008


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 at d:" #define an arbitrary test string
> regexpr('.',f)
[1] 1
attr(,"match.length")
[1] 1
> regexpr('\\.',f)
[1] 4
attr(,"match.length")
[1] 1
>


On Tue, Apr 15, 2008 at 6:27 AM, Jonathan Williams
<jonathan.williams at dpag.ox.ac.uk> wrote:
> 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 at 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-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.
>



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

What is the problem you are trying to solve?



More information about the R-help mailing list