我正在用 Objective-C 写一个正则表达式。
转义序列\w非法并发出警告,因此正则表达式/\w/必须写为@"\\w"; 显然,转义序列\?是有效的,并且不会发出警告,因此正则表达式/\?/必须写为@"\\?"(即,必须转义反斜杠)。
问号不是不可见的\tor \n,那么为什么是\?有效的转义序列?
编辑:澄清一下,我不是在问量词,而是在问一个字符串转义序列。也就是说,这不会发出警告:
NSString *valid = @"\?";
相比之下,这确实会发出警告(“未知转义序列 '\w'”):
NSString *invalid = @"\w";