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