0

我正在尝试替换/删除模式中的几列。

模式示例如下:

(. xx,asdf,gh,df.)

我想让它像:

(.asdf,gh,df.)

对于搜索,我使用/(.\zs[^,]\ze[^,^,^.)] 了这对搜索没有帮助。这也突出了每个模式中的第一列。即 ex (. 12, 23,34.) 模式也。

我的搜索的答案是在第一个模式中突出显示 x 并在第二个模式中突出显示 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 回答