我收到一个奇怪的警告,因此我的正则表达式搜索不起作用。这是行:
NSRange r = [HTML rangeOfString:@"\|(.*)\|" options:NSRegularExpressionSearch];
HTML
我确定包含上述正则表达式的单个匹配项的字符串在哪里。
警告仅在第一次出现“\|”时出现,而不是在两者上。
任何帮助深表感谢!
我收到一个奇怪的警告,因此我的正则表达式搜索不起作用。这是行:
NSRange r = [HTML rangeOfString:@"\|(.*)\|" options:NSRegularExpressionSearch];
HTML
我确定包含上述正则表达式的单个匹配项的字符串在哪里。
警告仅在第一次出现“\|”时出现,而不是在两者上。
任何帮助深表感谢!
您收到警告是因为\|
它不是 Objective-C(或 C 或 C++)中的有效转义序列。编译器忽略了这一点,只使用原始|
字符,因此您实际传入的字符串是@"|(.*)|"
.
要获得您想要的行为,您必须在源代码中转义反斜杠,以便正则表达式引擎看到文字反斜杠并将|
字符解释为文字而不是交替,例如@"\\|(.*)\\|"
.
加起来,如果你正在处理 unicode 格式的特殊字符序列,你可以使用这样的东西:
const unichar specialCharSequence='some special character';
if(specialCharSequence==L'\uxxxx')
{
//handle the occurence of this special character
}