0

パターン内のいくつかの列を置き換え/削除しようとしています。

パターンの例は次のとおりです。

(. xx,asdf,gh,df.)

そして、私はそれを次のようにしたい:

(.asdf,gh,df.)

検索のために、私は使用/(.\zs[^,]\ze[^,^,^.)] しましたこれは検索を助けていません。これは、すべてのパターンの最初の列も強調しています。つまり、ex(。12、23,34。)パターンもあります。

私の検索に対する答えは、最初のパターンでxを強調表示し、2番目のパターンで1の前に空のスペースを強調表示することです。

最初のパターンでのみ検索を機能させたい。私の検索の最初のステップは、期待どおりに機能していません。

誰かがここで私を助けてくれませんか。よろしくお願いします。

4

1 に答える 1

2
:%s#\v(\(\.)([^,]{-},)(.{-}\.\))#\1\3#g 

これは置換を行います:(. xx,asdf,gh,df.)->(.asdf,gh,df.)

強調表示したいだけの場合(この場合は _xx「_はスペースを意味します」)、後読みで試すことができます。

/\((\.\)\@<=[^,]*   

コメントに基づいて編集

ファイルがあると仮定します:

(. xx,asdf,gh,df,foo.)
(. xx,asdf,gh,df.)
(. xx,gh,df.)
(. xx,df.)
(. xx.)

vimで:

:%s#\v(\(\.)([^,]*,)([^,]*,[^,]*,[^,\.]*\.\))#\1\3#g 

私たちは得ました:

(. xx,asdf,gh,df,foo.)
(.asdf,gh,df.)
(. xx,gh,df.)
(. xx,df.)
(. xx.)
于 2013-01-02T21:18:44.963 に答える