早教吧作业答案频道 -->数学-->
vim中,下面的删除偶数行的正则表达式为什么不一样呀?123456789上面的九个数是测试文本,共九行.:%s/\s*//g表示删除每行的空格:%normjdd表示删除偶数行,其中表示空格,但是我不小心,输成了:%n
题目详情
vim中,下面的删除偶数行的正则表达式为什么不一样呀?
1
2
3
4
5
6
7
8
9
上面的九个数是测试文本,共九行.
:%s/\s*//g 表示删除每行的空格
:%normjdd 表示删除偶数行,其中表示空格,但是我
不小心,输成了:%normjdd
两条命令合起来就是
:%s/\s*//g|%normjdd (这个是错误的)
(写成看不见的空格的形式就是:%s/\s*//g|%norm j dd ,记成命令组A)
结果就成了保留第1\2\4\6\8行,
如果增加行尾空格,用
:%s/$/\s/g|%normjdd
(看不见的空格的形式就是:%s/$/ /g|%norm j dd ,记成命令组B)
结果是保留了第1\3\5\7\9行,也就是我想要的结果
我想问的是命令组A与命令组B为什么会不一样呀?不都是先向下
移动一行然后删除本行,再向下移动一行再删除本行,如此不断
还有就是正确的命令
:%s/\s*//g|%norm jdd (这个是删除每行空格)
:%s/$/ /g|%norm jdd (这个是增加每行行尾空格)
这两个命令都能正确地删除偶数行.
还有,删除奇数行是什么正则表达式呀?
1
2
3
4
5
6
7
8
9
上面的九个数是测试文本,共九行.
:%s/\s*//g 表示删除每行的空格
:%normjdd 表示删除偶数行,其中表示空格,但是我
不小心,输成了:%normjdd
两条命令合起来就是
:%s/\s*//g|%normjdd (这个是错误的)
(写成看不见的空格的形式就是:%s/\s*//g|%norm j dd ,记成命令组A)
结果就成了保留第1\2\4\6\8行,
如果增加行尾空格,用
:%s/$/\s/g|%normjdd
(看不见的空格的形式就是:%s/$/ /g|%norm j dd ,记成命令组B)
结果是保留了第1\3\5\7\9行,也就是我想要的结果
我想问的是命令组A与命令组B为什么会不一样呀?不都是先向下
移动一行然后删除本行,再向下移动一行再删除本行,如此不断
还有就是正确的命令
:%s/\s*//g|%norm jdd (这个是删除每行空格)
:%s/$/ /g|%norm jdd (这个是增加每行行尾空格)
这两个命令都能正确地删除偶数行.
还有,删除奇数行是什么正则表达式呀?
▼优质解答
答案和解析
%normal 的命令从没用过.不过从你这个命令来看,实在是很没谱啊.
我估计是bug了.要么就是第一次空格有效,后面的空格都是无效的了.
你前面那个替换没什么用.去不去掉空格增加空格都没有影响.
normal j dd 就是下移一行,再向后一个字符,再删除.顺序的操作. 如果这一行就1个字符的话,就跳到下一行了.
重复执行,那个空格可能被省略了吧.
建议normal 命令不用%来做.
给你2个命令:
删除偶数行:
%s/\(^.*$\)\n^.*$/\1/g
删除奇数行:
%s/^.*$\n\(^.*$\)/\1/g
很好理解,就是把2行正则match,替换成其中1行.
我估计是bug了.要么就是第一次空格有效,后面的空格都是无效的了.
你前面那个替换没什么用.去不去掉空格增加空格都没有影响.
normal j dd 就是下移一行,再向后一个字符,再删除.顺序的操作. 如果这一行就1个字符的话,就跳到下一行了.
重复执行,那个空格可能被省略了吧.
建议normal 命令不用%来做.
给你2个命令:
删除偶数行:
%s/\(^.*$\)\n^.*$/\1/g
删除奇数行:
%s/^.*$\n\(^.*$\)/\1/g
很好理解,就是把2行正则match,替换成其中1行.
看了 vim中,下面的删除偶数行的...的网友还看了以下:
一般地,两个正整数相除的商可用分数分数表示.即被除数÷除数=被除数除数被除数除数.用字母表示为p÷ 2020-05-14 …
二次函数的值域二次函数的定义域是R,值域为什么不能是R?但是在怎么说不都是实数吗?值域应该属于实数 2020-05-16 …
关于求最大公约数算法的问题书上是说:1.输入m、n(m为被除数,n为除数)2.m/n得余数r.3. 2020-05-20 …
25除以一个数的2倍,商是3余1,求这个数.提示不能用“25除2X=3.1”的除法式子表示方程,而 2020-06-03 …
如图所示电路,利用半偏法测电流表内阻时,按正确方法操作,若表头满偏时电阻箱R1读数为R,表头半偏时 2020-06-05 …
(X=R*cost(y=R*sint表示什么曲线?(R是正常数,t在[0,2*3.1415)内无变化 2020-11-04 …
没示数时:电阻R断路示数为电源电压时:电阻R短路或L1断路灯L1和电阻R串联,电压表并联在灯L1上, 2020-11-26 …
(2013•红桥区二模)阅读如图所示的程序框图,运行相应的程序(其中“r=aMOD4”表示“r等于a 2021-01-15 …
任何数除以0真的无意义吗?在物理学的电学中:在同一电路中电流等于电压除以用电器的电阻,用公式表示:I 2021-02-03 …
用一个函数表示圆所有的切线方程已知圆心为(a,b),半径为r,怎么用一个方程把它所有的切线表示出来, 2021-02-07 …