0

我对使用带有正则表达式的 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

我需要计算 11 年 3 月 8 日的 A2 条件的数量,这些条件在行的末尾有一个,,或一个,1 (,|1)或一个。(,|1),1

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

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

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

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

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

4

2 回答 2

2

VIM 正则表达式很奇怪而且令人困惑。你必须逃避|as \|for 或

于 2012-08-23T00:23:17.463 回答
1

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

:%s/.*8-Mar-11.*A2.*,1[,1]//gn
于 2012-08-23T03:25:34.000 回答