免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6637 | 回复: 22
打印 上一主题 下一主题

[文本处理] 关于^是取反还是句首 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-19 14:58 |只看该作者 |倒序浏览
看一本linux书中提到

grep ^$是搜索空白行
grep ^[^$]是搜索非空白行

这个都能理解

但又说 grep ^[[:space:]]是搜以空格或tab开头的行。我就不太理解了,为什么不能是搜索非空白字符呢?或者说到底是取反还是句首怎么判断?

论坛徽章:
0
2 [报告]
发表于 2012-08-19 16:12 |只看该作者
正则中[12a-z]表示一个集合,如果在这集合的最前头加^ , [^12a-z],就是取反,其他情况就是 ‘锚点’

这也能搞混?

论坛徽章:
0
3 [报告]
发表于 2012-08-19 16:43 |只看该作者
回复 2# id_for_fun


    大致知道,锚点作何解?

grep ^[[:space:]]  按照你的说法,这个怎么会解释为取反呢?

论坛徽章:
0
4 [报告]
发表于 2012-08-19 17:02 |只看该作者
回复 3# yonka


1. 所谓锚点,就是指位置了。开头, 行尾, 单词边界,等位置, 所谓锚点。。。。
这个我还要怎么解释, 难道一定要说船舶靠岸的时候下锚的点么  引申来~~

2. 谁告诉你那个表示取反? 你自己试过么

论坛徽章:
0
5 [报告]
发表于 2012-08-19 17:05 |只看该作者
本帖最后由 hbmhalley 于 2012-08-19 17:30 编辑

[^[:space:]] 取反

论坛徽章:
0
6 [报告]
发表于 2012-08-19 17:10 |只看该作者
回复 4# id_for_fun


    这个...
    我是觉得从格式上理解不应该是取反啊。看一本linux书上这么说。

    能否解释一下^[[:space:]]的意义?以及如果要表示取反时如何表达?

论坛徽章:
0
7 [报告]
发表于 2012-08-19 17:19 |只看该作者
[[:space:]]  是一个整体, 表示各种空格字符, 如空格,制表符等。
^[[:space:]] 表示开头是[[:space:]] 的,会被匹配

取反? 你说咋取

论坛徽章:
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
8 [报告]
发表于 2012-08-19 17:45 |只看该作者
回复 6# yonka


    估计书上没错,也许你没有搞清上下文。

论坛徽章:
0
9 [报告]
发表于 2012-08-19 22:15 |只看该作者
回复 7# id_for_fun


    那为什么不用^[:space:]呢?表示空白的POSIX字符应该是[:space:]啊。。。我只是难以理解当^在什么前面时表示取反呢?

论坛徽章:
0
10 [报告]
发表于 2012-08-20 08:58 |只看该作者
回复 9# yonka


    简单点讲,出现在表示字符集的中括号里就是取反
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP