Vim中的正则表达式将计数1或冒号

时间:2012-08-23 00:19:32

标签: regex vim

我对使用带有正则表达式的vim很新,我需要计算.csv文件中的特定条目这些条目是这样的:

9,1,8-Mar-11,high,A2,mid,500,1000,0.143494345,0.153521446,1121.386992,409.6833333,,
9,2,8-Mar-11,high,A2,mid,500,1000,0.180015537,0.256840072,1190.977918,420.8229933,1,
9,3,8-Mar-11,high,A2,mid,500,1000,0.250273568,0.16378268,1061.417761,419.1692065,,1

我需要计算8-Mar-11,A2条件的数量,这些条件在行尾有,,,1 (,|1)(,|1),1

这是我在vim中用来获取一些计数数据的正则表达式:

:%s/.*8-Mar-11.*A2.*,,1$//gn

我想知道有没有办法在vim中使用?像:

:%s/.*8-Mar-11.*A2.*,1\(,|1\)//gn

非常感谢任何建议或帮助!

2 个答案:

答案 0 :(得分:2)

VIM正则表达式很奇怪且令人困惑。您必须将|转义为\|

答案 1 :(得分:1)

当你正在编写一个正在搜索一个或另一个字符的正则表达式时,使用管道进行交替是过度的。改为使用字符类:

:%s/.*8-Mar-11.*A2.*,1[,1]//gn