vim正規表現は\をエスケープする必要はありません


17

Vimには、たとえばAwkと同じスタイルで正規表現を記述するオプションがあり

/sp\{0,\}/
ます

/sp{0,}/

回答:


29

パターンの前に置く\vと、パターンが「魔法」になり、シンボルが好き{[、解釈された意味を持ちます(そして、リテラルをエスケープする必要があります)。

だから/\vsp{1,}あなたが望むものを見つけるだろう(私はそれをテストしただけだ)。

あなたは再マッピングすることで、デフォルトのこの種を作ることができます//\v、あなたのvimrcに以下の行を持ちます:

nnoremap / /\v
vnoremap / /\v

詳細:help patternをご覧ください。


1

/sp\{0,}

もちろん{0,}、を使用した方が良いでしょう*:(/sp*上記と同じ) 's'の後に0個以上のpが続きます。ゼロ以上が常に真であることに注意してください。したがって、この特定の式には理由がありません。


これはすべて良い情報であり、非常に有用でした。vimで特殊文字のエスケープを無効にする方法はありますか?
MageProspero

あなたの言っていることがわかりました。並行して開発された別のパーサーがほぼ確実に必要になることを真剣に疑っており、余分な実装と保守を正当化するのに十分な需要がある機能になるとは思わない。
ケビン

-1

Vimにはawkスタイルの正規表現をエミュレートするオプションはありません。正規表現には多くの方言がありますが、残念なことに、あるツールから別のツールに移行するときに追跡するためのこれらの小さな弁証法的な違いが常にあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.