2010/6/17 listofx <[email protected]>: > 虽然邮件有点长,我觉得还是保留上面的内容接着写。我有两个疑问: > 疑问一: > 你最后的答复我能看明白,不过,不是说还有一种叫做懒惰匹配,也就是不将匹配 > 最大化,如果不熟悉,请看 > http://deerchao.net/tutorials/regex/regex.htm#greedyandlazy > > xi...@xiang-laptop:~/tmp$ cat a > python-gtk2-dev (2.17.0-0ubuntu2), libgladeui-1-9 (3.7.0.is.3.6.7-0ubuntu1), > python-gtk2-doc (2.17.0-0ubuntu2) > xi...@xiang-laptop:~/tmp$ cat a | sed 's/(.*?)//g' > python-gtk2-dev (2.17.0-0ubuntu2), libgladeui-1-9 (3.7.0.is.3.6.7-0ubuntu1), > python-gtk2-doc (2.17.0-0ubuntu2) > > 从结果可见,没有达到想要的效果 >
sed 不支持这种修饰符,当然您如果想用 Perl 的话这样最好。 > 疑问二: > 不理解cat a |sed > 's/(.*)//g'为什么会匹配括号,因为按照我先前的解释,最终是将(.*)这样的正则表达式给了sed,而(在正则表达式中有其特殊含义,如果想要 > 匹配(,正确的正则表达式是\(.*\),不是吗? > sed 会将不加转义的括号当成普通字符,\( \)会被当成分组括号。 ji...@jimmy:~$ echo Aa | sed 's/\(A\)/[\1]/g' [A]a -- Jimmy Xu -- ubuntu-zh mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
