免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: h200952709
打印 上一主题 下一主题

请问SED里括号()的作用 [复制链接]

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
21 [报告]
发表于 2011-06-09 17:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
22 [报告]
发表于 2011-06-09 17:23 |只看该作者
回复 21# zooyo


    基础正则是不支持'()'的么?...汗... 但是那个sed的表达式也很怪异啊... ‘\(love\)able’,按照常理来说,“(” ")"既然被转义了,那它就应该是一个普通字符;如果它是一个普通字符,它么它就应该去匹配普通字符‘(’、')'. 那么解释应该是,在基础正则表达式中,'\('并不是转义'(',而是'\('是一个元字符序列;可是这有一个问题啊:普通的'(' ‘)’字符在基础正则表达式中用什么来匹配啊??难道说,在基础正则表达式中,'('就代表普通字符?那这不是和扩展正则表达式刚好相反了吗...汗...

    求解释...

    另外。正则只是一种字符串匹配规则和表达方法。但是不同的工具对正则的支持并非完全相同,实现也有细微的差异。这些差异被成为流派。因为perl早前对正则的支持较为优秀,因此大多正则流派都属于perl流派。

论坛徽章:
0
23 [报告]
发表于 2011-06-09 17:26 |只看该作者
回复 21# zooyo


        
     This is what I truely wanted.
     haha


     QQQU

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
24 [报告]
发表于 2011-06-09 17:35 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
25 [报告]
发表于 2011-06-09 17:49 |只看该作者
回复 24# zooyo


    是的,如果按照那样的解释的话,基础正则和扩展正则在这一点(括号转义)上面恰好相反... 你妹,我居然是今天刚发现的。

    你有没有看过一本手册,叫做《Unix痛恨者手册》。这本手册列出了Unix十分可恨的地方。

    要说的话,-- 刚才发现的这一点,是否会令你开始有一点点痛恨正则...

论坛徽章:
0
26 [报告]
发表于 2011-06-09 20:27 |只看该作者

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
27 [报告]
发表于 2011-06-10 02:58 |只看该作者
回复 15# h200952709


多看看官方的教程,学习笔记神马的,以后有了鉴别功力再看。

论坛徽章:
0
28 [报告]
发表于 2011-06-10 09:47 |只看该作者
回复 27# Shell_HAT


   

论坛徽章:
0
29 [报告]
发表于 2011-06-10 10:21 |只看该作者
  1. library@BleuDebian:~/Desktop/paper$ cat 12
  2. 1

  3. (abc|efg)kkk
  4. (abc
  5. |efg)kkk
  6. efgkkk
  7. abckkk
  8. 2
  9. 3
  10. 4
  11. 5
  12. 6
  13. library@BleuDebian:~/Desktop/paper$ sed -n '/(abc|efg)/p' 12
  14. (abc|efg)kkk
  15. library@BleuDebian:~/Desktop/paper$ sed -n '/\(abc|efg\)/p' 12
  16. (abc|efg)kkk
  17. library@BleuDebian:~/Desktop/paper$ sed -n '/\(abc\|efg\)/p' 12
  18. (abc|efg)kkk
  19. (abc
  20. |efg)kkk
  21. efgkkk
  22. abckkk
  23. library@BleuDebian:~/Desktop/paper$ sed -n '/(abc\|efg)/p' 12
  24. (abc|efg)kkk
  25. (abc
  26. |efg)kkk

复制代码
基础正则中的转义,实验表明,基础正则中()为基本字符,如需使用作为元字符需要转义 \(\),|也一样。

小弟除学!不知道是否真确,望指正!

论坛徽章:
0
30 [报告]
发表于 2011-06-10 10:26 |只看该作者
回复 20# captivated


   
啥是perl 流派
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP