Objective-Cで正規表現を書いています。
エスケープ シーケンス\wは不正であり、警告を発するため、正規表現は;の/\w/ように記述する必要があります。@"\\w"エスケープ シーケンス\?は明らかに有効であり、警告を発しないため、正規表現は次の/\?/ように記述する必要があります@"\\?"(つまり、バックスラッシュをエスケープする必要があります)。
疑問符は\tや\nのように見えないわけではないのに、なぜ\?有効なエスケープ シーケンスがあるのでしょうか?
編集:明確にするために、私は量指定子について尋ねているのではなく、文字列のエスケープシーケンスについて尋ねています。つまり、これは警告を発しません。
NSString *valid = @"\?";
対照的に、これは警告を発します (「不明なエスケープ シーケンス '\w'」)。
NSString *invalid = @"\w";