LinuxSir.cn,穿越时空的Linuxsir!

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

对于expr运算,为什么?和* 之类的字符会无效?

[复制链接]
发表于 2008-8-13 13:49:15 | 显示全部楼层 |阅读模式
系统是Mac,基本上就是个BSD系统咯,
看看我的控制台情况:

  1. LoganLaptop:sh Xz$ expr "1.00" : "1"
  2. 1
  3. LoganLaptop:sh Xz$ expr "1.00" : "1.00"
  4. 4
  5. LoganLaptop:sh Xz$ expr "1.00" : "^1"
  6. 1
  7. LoganLaptop:sh Xz$ expr "1.00" : "^1.0"
  8. 3
  9. LoganLaptop:sh Xz$ expr "1.00" : "^[1-9].0"
  10. 3
  11. LoganLaptop:sh Xz$ expr "1.00" : "^[19].0"
  12. 3
  13. LoganLaptop:sh Xz$ expr "1.00" : "^[19]?.0"
  14. 0
  15. LoganLaptop:sh Xz$ expr "1.00" : "^[19]+.0"
  16. 0
  17. LoganLaptop:sh Xz$ expr "1.00" : "^[19]{1}.0"
  18. 0
复制代码

可以发现,一旦用了?号,+号,或者{n},匹配就失败了。
请教为什么?
发表于 2008-8-14 03:41:42 | 显示全部楼层
echo `expr "1.00" : "^[19]\?.0"`
echo `expr "1.00" : "^[19]\+.0"`
echo `expr "1.00" : "^[19]\{1\}.0"`
回复 支持 反对

使用道具 举报

发表于 2008-9-25 14:09:40 | 显示全部楼层
expr expects "basic" regular expressions, see re_format(7) for more information on regular expressions.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-26 20:02:09 | 显示全部楼层
Post by manmadkoma;1885772
echo `expr "1.00" : "^[19]\?.0"`
echo `expr "1.00" : "^[19]\+.0"`
echo `expr "1.00" : "^[19]\{1\}.0"`

  1. LoganLaptop:~ Xz$ echo `expr "1.00" : "^[19]\?.0"`
  2. 0
  3. LoganLaptop:~ Xz$ echo `expr "1.00" : "^[19]\+.0"`
  4. 0
  5. LoganLaptop:~ Xz$ echo `expr "1.00" : "^[19]\{1\}.0"`
  6. 3
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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