Vim 正規表現: + はエスケープする必要がありますが、* はエスケープする必要はありません。なぜでしょうか?

Vim 正規表現: + はエスケープする必要がありますが、* はエスケープする必要はありません。なぜでしょうか?

オプションの空白文字、その後に正の整数、さらにオプションの空白文字が続く行を選択したいとします。

これがこれに役立つ正規表現です:

:g/^\s*\d\+\s*/

演算子*はエスケープされませんが、 はエスケープされ+ます。エスケープすると*正規表現が壊れます。エスケープ解除も同様です+

これについて良い説明はありますか? 理想的には、ルールを直感的に理解できるような説明が必要です。vim では、エスケープ ルールが通常とは異なるため、正規表現を書くのにいつも苦労しています。そのため、すべてが理解できるような洞察力があれば幸いです。

答え1

これは歴史的な理由によるもので、変更されると互換性が失われます。ただし、パターンの前に を付けて\v「very magic」をオンにすると、特別なエスケープを行う必要がなくなります。 を参照してください:help /\v

関連情報