vim中,下面的两个正则表达式为什么是一样的呢?

我的想法是删除文件中所有的星号(*)第一个:g/*/d我发现这个不行,这个把所有的文本都删除了,然后换成第二个:g/\*/d,这个还是把所有的文本都删除了,不知道为什么会... 我的想法是删除文件中所有的星号(*)
第一个:g/*/d 我发现这个不行,这个把所有的文本都删除了,
然后换成第二个:g/\*/d ,这个还是把所有的文本都删除了,
不知道为什么会这样.第二个正则表达式我明明加了转义符\呀
如果我用命令:%s/\*//g 则可以把星号都删除,
所以我想知道为什么第一个和第二个正则表达式为什么是
一样的效果,我感觉很奇怪.

测试的文本为:
* 清华大学
* 北京大学
* 中国人民大学
展开
 我来答
achillowy
2011-02-24 · TA获得超过304个赞
知道小有建树答主
回答量:143
采纳率:100%
帮助的人:64.1万
展开全部
你的前2个命令 *和\*都匹配了*
:g/*/d
:g/\*/d
但是后面的cmd命令是不正确的。d代表了删除整行。所以,你的所有包含*的行都被删除了。因为你所有的行都有*,所以你的全部文本都被删除了。
建议你使用:s命令,比g好用多了。
如果非要用g的话:那你想要的命令如下:
:g/\*/s///g
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式