早教吧作业答案频道 -->数学-->
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中,下面的删除偶数行的...的网友还看了以下:
设A是由m×n个实数组成的m行n列的数表,满足:每个数的绝对值不大于1,且所有数的和为零,记s(m 2020-06-12 …
A是p*n矩阵(p行n列),A的秩rank(A)=n,证明rank(A'A)=n(A'表示A的转置 2020-06-30 …
n2(n≥4)个正数排成如右表所示的n行n列:a11,a12,a13,…,a1na21,a22,a 2020-07-15 …
记函数的导数为的导数为的导数为。若可进行n次求导,则均可近似表示为:若取n=4,根据这个结论,则可 2020-08-02 …
某剧院座位的排数与每排座位数的关系如表格所示:排数n座位数m128228+2328+4428+6.. 2020-11-01 …
下图是按照一定的规律画出的一列“树型”图,下表的n表示“树型”图的序号,an表示第n个“树型”图中“ 2020-11-08 …
如图,设A是由n×n个实数组成的n行n列的数表,其中aij(i,j=1,2,3…,n)表示位于第i行 2020-11-17 …
[freepascal]矩阵问题描述输入一个矩阵的行数,输出对应的图形(对角线数据为0,其余为1)。 2020-11-18 …
初四二次函数已知一直角三角形两条直角边的和是6cm,则以这个直角三角形的斜边为边长的正方形的面积的最 2020-12-08 …
2004年美国火星车在火星表面成功登陆,火星车在登录前绕火星做圆周运动,距火星表面高度H,火星半径为 2020-12-22 …