正規表現(vim)で「次の未知数の文字に指定された記号があります」を表現する方法は?

正規表現(vim)で「次の未知数の文字に指定された記号があります」を表現する方法は?

私のマークダウンファイルにはPythonコードの例がたくさんあり、>>>シンボルで始める必要があります。

だから私はそれを行うためにvim関数を書いた。

function AddShellPrompt() range
    let lnum = a:firstline
    while lnum <= a:lastline
        let replaced_line = substitute(getline(lnum), '^\s\+', '&>>>', '')
        call setline(lnum, replaced_line)
        let lnum += 1
    endwhile
endfunction

問題は、次の生テキストの場合です。

pow(2, 3)
8

>>>beforeにのみ追加してくださいが、pow(2, 3)beforeには追加しないでください8。したがって、正規表現を拡張する必要があります。私は文字を含む行だけを
追加したらどうかと思いました。 (完璧ではありませんが)かなり良い結果が得られます。>>>+-*/%(=

しかし、問題は正規表現(特にvimで)を書いて表現する方法です。与えられたセットの一部の文字が現在行にすでに表示されていますか?

答え1

vim正規表現エンジンのサポート角かっこ表現、角かっこで囲まれた文字シーケンスで文字クラスを定義できます[...]

/[+\-*/%(=]/

-これらの文字のいずれかと一致します(文字通り一致させるには、文字間の範囲を定義するエスケープが必要です)。

現在行に文字セットが含まれていることを確認するには、次の手順を実行します。

if getline(".") =~ '[+\-*/%(=]'
  echo "Match"
endif

関連情報