免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1033 | 回复: 3

[系统管理] 一个正则表达式的用法及效果 [复制链接]

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-01-20 06:20:00
发表于 2016-01-17 22:38 |显示全部楼层
今天看到一个正则表达式,有点费解,话不多说,贴出来请大神解释一下。

#echo "i cannot do it" |grep "can[ no' ]*t"
# i cannot do it

######
个人理解:
grep后面接的正则表达式 [ no' ] 中括号里(前后各一个空格)只能匹配一个字符,也就只有匹配一个 空格 或 n 或 o 或 ' ,后面 星号 表示匹配前面字符0个或多个。
按此理解,此正则表达式应该无法匹配到此行,输出为空才对。

请大神帮忙分析 给出解释,多谢了~!  

论坛徽章:
84
每日论坛发贴之星
日期:2015-12-29 06:20:00每日论坛发贴之星
日期:2016-01-16 06:20:00每周论坛发贴之星
日期:2016-01-17 22:22:00程序设计版块每日发帖之星
日期:2016-01-20 06:20:00每日论坛发贴之星
日期:2016-01-20 06:20:00程序设计版块每日发帖之星
日期:2016-01-21 06:20:00每日论坛发贴之星
日期:2016-01-21 06:20:00程序设计版块每日发帖之星
日期:2016-01-23 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-14 06:20:00
发表于 2016-01-18 22:06 |显示全部楼层
[] 是字符集,* 是指示前面的字符/字符集匹配 0 或 多次

论坛徽章:
10
金牛座
日期:2014-09-16 19:02:48技术图书徽章
日期:2015-11-24 01:37:29操作系统版块每日发帖之星
日期:2015-11-18 06:20:002015年亚洲杯之沙特阿拉伯
日期:2015-04-13 17:33:462015年迎新春徽章
日期:2015-03-04 09:51:162015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2014-12-04 19:33:55白羊座
日期:2014-09-17 19:34:42巨蟹座
日期:2014-09-16 21:09:4815-16赛季CBA联赛之同曦
日期:2016-06-27 23:23:07
发表于 2016-01-18 23:52 |显示全部楼层
bobower 发表于 2016-01-17 22:38
今天看到一个正则表达式,有点费解,话不多说,贴出来请大神解释一下。

#echo "i cannot do it" |grep " ...




中括号内表示是集合, 即可以是一个空格,也可以是一个n, 更可以是一个o, 后面*号表示匹配前面字符0个或任意个, 也就是说可以有0个n或者无数个n,   也可以有0个o或者无数个o, 空格也是如此.

既然可以有任意个n或者o的组合,那当然会匹配到cannot ,也可以匹配cannnot,  cannoot,

论坛徽章:
9
操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-17 17:50:32操作系统版块每日发帖之星
日期:2016-08-01 06:20:0015-16赛季CBA联赛之广东
日期:2016-08-01 16:01:57操作系统版块每日发帖之星
日期:2016-08-04 06:20:00IT运维版块每日发帖之星
日期:2016-08-07 06:20:00操作系统版块每日发帖之星
日期:2016-08-07 06:20:0015-16赛季CBA联赛之福建
日期:2017-03-07 17:14:27
发表于 2016-01-27 10:50 |显示全部楼层
应该写成 echo "i cannot do it" |grep "can[[ no' ]]*t"
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP