iOS Regex: Unknown escape sequence “\|”

前端 未结 2 452
说谎
说谎 2020-12-30 03:26

I\'m getting a weird warning, and as a result my regex search isn\'t working. Here\'s the line:

NSRange r = [HTML rangeOfString:@\"\\|(.*)\\|\" options:NSReg         


        
相关标签:
2条回答
  • 2020-12-30 04:13

    Just to add up, if you are dealing with special character sequences in unicode format, you can use something like this:

    const unichar specialCharSequence='some special character';
    if(specialCharSequence==L'\uxxxx')
    {
       //handle the occurence of this special character
    }
    
    0 讨论(0)
  • 2020-12-30 04:25

    You're getting the warning because \| is not a valid escape sequence in Objective-C (or C or C++ for that matter). The compiler is ignoring that and just using a raw | character instead, so the string you're actually passing in is @"|(.*)|".

    To get the behavior you want, you have to escape the backslash in your source code so that the regex engine sees the literal backslash and interprets the | character as a literal instead of as alternation, e.g. @"\\|(.*)\\|".

    0 讨论(0)
提交回复
热议问题