关于linux 里sed的用法与正则表达式?

为什么echoaabbabbaab|sed's/[a]*/x/g'的输出结果是xbxbxbxbxbx啊?有没有大神解答一下,谢谢... 为什么
echo aabbabbaab | sed 's/[a]*/x/g'
的输出结果是xbxbxbxbxbx啊?
有没有大神解答一下,谢谢
展开
 我来答
百度网友023b1c3
科技发烧友

2020-04-12 · 智能家居/数码/手机/智能家电产品都懂点
知道小有建树答主
回答量:1086
采纳率:84%
帮助的人:287万
展开全部

题主你好,

这道题的关键点在于:

  "  [a]* 表示匹配0个或多个a "

" 多个a "好理解,但" 0个a "可能就是你不理解的地方,说白了" 0个a "匹配的是位置而并不是某个字符, " 0个a "故名思议嘛:

    " 没有a的地方 "

-------------------

下来咱看一下问题里所描述的:

echo aabbabbaab | sed 's/[a]*/x/g'

上面的代码共发生了6次匹配,我把每一次的匹配都记录下来了:

你可以这样去记: 像这种"  [x]* "匹配0个或多个x字符的正则你可以理解为:

" 字符替换+位置替换 " 的合体, 即匹配上字符了就将相应的字符给替换了,没有匹配上字符的,就把相应的位置给替换了,而位置替换用位置插入去想更好理解一些

希望对题主有帮助,上面是我的理解,不一定完全正确,如果不对也请指正,如果有需要交流的,欢迎追问

追问
谢谢谢谢,讲的很清楚,非常感谢
追答
对你有帮助就好
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式