LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 821|回复: 1

有关正则表示法, * 符号的注解. 有个疑问.

[复制链接]
发表于 2005-12-5 21:59:46 | 显示全部楼层 |阅读模式
* 代表的是『重複 0 個或多個前面的 RE 字符』的意義, 因此,『o*』代表的是:『擁有空字元或一個 o 以上的字元』, 特別注意,因為允許空字元(就是有沒有字元都可以的意思),因此, grep -n 'o*' regular_express.txt 將會把所有的資料都列印出來螢幕上!

那如果是『oo*』呢?則第一個 o 肯定必須要存在,第二個 o 則是可有可無的多個 o , 所以,凡是含有 o, oo, ooo, oooo 等等,都可以被列出來~

  上面的例子怎么能只有一个o 也搜索出来呢 你搜索的是两个oo 以上字符, 就算允有空字符. 也不能减一去一个o 呀.
   有点不明白. 哪位兄弟说说.
发表于 2005-12-6 10:03:19 | 显示全部楼层
简单的说要比较*和+的区别~~`
o* 和 o+的区别~~
*是匹配0个1个2个....
+是匹配1个2个3个....
那么o*实际上就是0个o,1个o,2个o....
而oo*实际上可以看成两部分o和o*,o是一定要匹配的那个,而o*的匹配是从0个开始~~

好像越说越复杂了~~~
实际上oo*跟o+有相同的结果~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表