vim, man 以下を使用する場合の正規表現の正確な一致

vim, man 以下を使用する場合の正規表現の正確な一致

vim、man以下を使用する場合は、正規表現で正確な一致を実行したいと思います。

たとえば、manを使用するときに '-c'パラメータを確認したいとします。

私が使うなら

  /'-c'

-cim -covert......blablaと一致することがあります。

しかし、'-c'だけを一致させたいのです。

正確なマッチングを達成するには?ありがとうございます!

答え1

前後に文字がないことを確認する短いvim式

/\(^\|\s\)\@<=-c\>

男性/以下と同じ:

/(^|\s)-c\b

追加の注意事項(Vim):

おそらく、Vimの正規表現の中で最も有用なのは、-c\>「'-c'を見つけることです。ただし、後ろに文字がない場合にのみ該当します」ほとんどの場合を使用して検索しますが/-c\>、完全性のために「-c」の前にある内容を確認する式を追加しました。式は、\(^\|\s\)\@<=Vimの正規表現構文が少し冗長であるため複雑に見えます(グループ化された角かっこと「or」パイプをエスケープする必要があるため)。この表現は\(^\|\s\)「行の先頭または空白文字」を意味します。その後に\@<=「実際には一致せず、正規表現の次の部分の前に現れることを確認してください」(これは実際には検索と置換操作にのみ役立ちます)。実際、この\@<=部分はあまり必要ないようです。省略して追加すると、さらに短縮できます\v。これにより、Vimに素晴らしい構文を使用しないことを伝えます。そうです/\v(^|\s)-c>

man / less等価物の説明:

はるかに簡単です。 less(デフォルトの手動ポケットベル)は\bVimと同じ正規表現構文を使用し、\>エスケープ角かっこやパイプ文字を必要としません。行の先頭または空白文字の直後に現れる文字列 "-c" を探し、その後に他の文字がないことを確認します。

答え2

vim使用中

/\(^\|\s\)-c\($\|\s\)

存在するless

/(^|\s)-c($|\s\)

vimでは単語の境界を使用できますが、iskオプションになる可能性がある他の項目とも一致するため、明示的にスペースを見つけるのがより安全です。

関連情報