如何从字符串中提取版本号

时间:2014-03-18 19:49:31

标签: regex

我想从字符串

中提取子字符串1.9.175
AC_INIT([HDF5], [1.9.175], [help@hdfgroup.org])

来自sed: Extract version number from string的解决方案无效,因为5中的HDF5;

$ echo "AC_INIT([HDF5], [1.9.175], [help@hdfgroup.org])" | sed 's/[^0-9]*\([0-9][\.0-9]*\).*/\1/'
5

什么是更好的选择?

2 个答案:

答案 0 :(得分:0)

可能适合您的简单正则表达式是:

\[[\d\.]+\]

更完整的一个:

\[\d+(.\d+)+\]

答案 1 :(得分:0)

您可以使用:

echo "AC_INIT([HDF5], [1.9.175], [help@hdfgroup.org])" | sed 's/^.*\[\([.0-9]*\)\].*/\1/'
1.9.175