16

ブラケット内でエスケープするルールは、ブラケット外で行うルールとは異なりますか?

たとえば?、ブラケット内で a をエスケープする必要がありますか? それとも/blah[^?]/_/blah[^\?]/

ブラケットのルールはそうでない場合とは異なりますか、それとも両方を同じようにエスケープする必要がありますか?

4

1 に答える 1

30

角かっこでエスケープする必要があるのは、閉じ角かっこと、それが頭文字または最終文字でない場合はマイナス、頭文字の場合はハットです。バックスラッシュ自体ももちろんです。

その理由は、括弧内に特別な意味を持つ唯一の文字だからです。閉じ括弧は括弧を終了し、文字列の中間のマイナスは範囲を示し、最初のハットは括弧クラスを否定します。それ以外はすべて文字どおりに解釈する必要があります。バックスラッシュはエスケープ文字であるため、リテラルのバックスラッシュと一致させるには二重のバックスラッシュが必要です。

于 2012-05-15T02:23:23.653 に答える