2013-01-02 68 views
0

我正在尝试用替换/删除模式中的几列。图案在gvim中搜索并替换正则表达式

示例如下:

(. xx,asdf,gh,df.) 

,我想使它像:

(.asdf,gh,df.) 

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

我搜索的答案是在第一个模式中突出显示x,在第二个模式中突出显示1之前的空白空间。

我希望我的搜索仅适用于第一种模式。 搜索我的第一步不能按预期工作。

有人可以帮我一把。 非常感谢您的帮助。

+2

你能不能给你想要的原始字符串和更换什么其他的例子吗?单从这个样本中,我们不能告诉 – fge

+0

你想要搜索&突出或替换? – Kent

+0

我想搜索并替换...但搜索本身的第一步不起作用。我正在使用的正则表达式如下(.12,0012,23,00),(。11,00ff,34,10),.....我想在所有这些地方删除前两位数字段和4位数字字段之前的逗号。 - @ krishna – Kris

回答

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

这会做更换:(. xx,asdf,gh,df.) - >(.asdf,gh,df.)

,如果你只是想突出它(在你的情况是_xx“_指空间”),你可以用向后看尝试:

基于评论
/\((\.\)\@<=[^,]* 

编辑

假设我们有一个FIL E:

(. 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.) 
+0

谢谢@kent ....但是这个搜索存在问题... 我希望搜索仅适用于例如:(.12,2344,34,00.)模式而不是ex( )3323,24,33。)模式... – Kris

+0

谢谢@kent ....但这个搜索存在问题... 我希望搜索只适用于ex:(.12,2344,34,00 。)模式只有和不ex(.3323,24,33。)模式... 让我举个例子。 (.0000,0.0000,00),(1222,55,99。),(12,ffff,45,56。),(23,00ff,45,77。),(0.0ff0,22 ,00。)........ 上面的模式是一个非常大的模式阵列的一部分。很少有4个字段模式,很少有3个字段模式,我希望搜索字符串只能处理4个字段模式。 – Kris

+0

@krishnachaitanya查看编辑 – Kent

相关问题