我对使用带有正则表达式的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
非常感谢任何建议或帮助!
答案 0 :(得分:2)
VIM正则表达式很奇怪且令人困惑。您必须将|
转义为\|
或
答案 1 :(得分:1)
当你正在编写一个正在搜索一个或另一个字符的正则表达式时,使用管道进行交替是过度的。改为使用字符类:
:%s/.*8-Mar-11.*A2.*,1[,1]//gn