は、あなたが探しているもの
\(jsPar\|btn\|jspAtt\)[^ \t]*K
ですか? 「スペースまたはタブ文字のこの時点では、任意の量(含ゼロ)と一致」
\(jsPar\|btn\|jspAtt\)
が、その後[^ \t]*
は言う、「この時点では、これらの選択肢のいずれかに一致する」と言い、そしてもちろんのK
はこれを」意味Kとのマッチングが成立する。追加した質問については
はこのような何かを行うことができます:
%s/\(jsPar\|btn\|jspAtt\)[^ \t]*\zsK/\=submatch(1) == 'jsPar' ? 'P' : submatch(1) == 'btn' ? 'B' : 'A' /g
(\zs
はこれだけ「K」が置き換えられます「試合はこの時点で開始していると考え」と言います。)
しかし、私がにが1回のパスで置換を行うとしたら、私はそれを行うだけです。そうでなければ、私はちょうど3 s///
秒で実行したい:コマンド履歴を考える
%s/jspAtt[^ \t]*\zsK/A/g
%s/jsPar[^ \t]*\zsK/P/g
%s/btn[^ \t]*\zsK/B/g
を、それははるかに少ないタイピングだし、任意の計算を指定するときには、常に可能性だのに対し、また、デバッグを必要とすることは非常に考えにくいです。
ORをエスケープする必要があります。 \ | http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtmlを参照してください。 – RobertB
うん、すでに修正済みです。 Perl以外の正規表現のどの方言が私にそれらをエスケープするかどうかを覚えていない。 –
質問に追加したことについては何か? –