BSD expr与GNU expr的区别



有人知道为什么

expr "4" : '-?[0-9]+$' 

在Mac OS X上返回0,在Linux上返回1 ?

事实:Mac使用BSD exprLinux使用GNU

对不起,我原来打的是

expr "4" : '-?[0-9]+$'

expr接受基本正则表达式,而不是扩展正则表达式。

基本正则表达式不支持?+操作符;你需要使用边界。

  • ?{0,1}实现(0到1次出现)
  • +{1,}一起实现(1次或多次出现)

GNU expr似乎允许它们作为一个扩展,如果它们被转义。

下面是一个可移植的调用,应该可以在任何posix兼容的expr实现中工作:

expr "4" : '-{0,1}[0-9]{1,}$'

相关内容

  • 没有找到相关文章

最新更新