How do I escape special characters in an NSString using RegexKitLite?

I’m constructing a regular expression that uses strings input by the user but the strings might contain special characters such as . \ or * and I want those to be treated as literals and not interpreted by their special meanings in the regex. I’ve tried this:

NSString *word = [input stringByReplacingOccurrencesOfRegex:@"(\\P{L})" withString:@"\\$1"];

but the non letter characters are converted to ‘$1’ instead of being prefixed with a backslash. I’ve tried one and three backslashes in the second term but those give me an ‘Unknown escape sequence’ warning in XCode. How can I print a backslash without RegexKitLite thinking that I’m escaping the dollar sign?

  • How to check if string matches a regular expression in objective-c?
  • Solutions Collect From Internet About “How do I escape special characters in an NSString using RegexKitLite?”

    Write the expression as you normally would and then replace each single backslash with two. Thus

    \. 
    

    becomes

    \\. 
    

    and

    \\ 
    

    becomes

    \\\\