On 13-Aug-03 Barry Rowlingson wrote: > Thompson, Trevor wrote: >> I didn't see anything in the help file about "." being some kind >> of special character. Any idea why R is treating a decimal this >> way in these functions? Any suggestions how to get around this? > > '.' is the regexpr character for matching any single character! > > regexpr("a.e", "Female.Alabama") > [1] 4 > To actually search for a dot, you need to 'escape' it with a > backslash, but of course the backslash needs escaping itself, with > another backslash. Luckily that backslash doesn't need escaping, > otherwise we would quickly run out of patience. > > regexpr("\\.", "Female.Alabama") > [1] 7
It's also worth remembering the use of [], normally used to enclose a disjunctive list of characters to match (e.g. [Aa] matches either "A" or "a") or a range (e.g. [0-9] matches any digit). Any metacharacter occurring within will be interpreted literally with exceptions "\" and (for obvious reasons) "]" which must be escaped (in which case the use of [] is redundant); -- however, "[" works! > regexpr("a.e", "Female.Alabama") [1] 4 attr(,"match.length") [1] 3 > regexpr("[.]", "Female.Alabama") [1] 7 attr(,"match.length") [1] 1 > regexpr("[[]", "Female[Alabama") [1] 7 attr(,"match.length") [1] 1 > regexpr("[\\]", "Female\\Alabama") [1] 7 attr(,"match.length") [1] 1 > regexpr("[\]]", "Female]Alabama") [1] 7 attr(,"match.length") [1] 1 Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <[EMAIL PROTECTED]> Fax-to-email: +44 (0)870 167 1972 Date: 13-Aug-03 Time: 22:14:06 ------------------------------ XFMail ------------------------------ ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help