获取两位数之间的字符串

时间:2019-12-04 05:35:36

标签: regex sed

我有一个字符串,例如“ a-bd-dgd.16.4.8-123-34-67dd-.ddsfd”,我想从数字开始到结束之间。

所以我需要使用sed或regex的16.4.8-123-34-67。

我尝试-

echo "a-bd-dgd.16.4.8-123-34-67dd-.ddsfd" | sed 's/[^0-9.-]//g' | sed 's/[^0-9]*.$//g'

1 个答案:

答案 0 :(得分:0)

这应该做:

echo "a-bd-dgd.16.4.8-123-34-67dd-.ddsfd" | sed -r 's/[^0-9]*([0-9].*[0-9])[^0-9]*/\1/'
16.4.8-123-34-67
  • [^0-9]*标记所有非数字
  • ([0-9].*[0-9])使一组所有数据以一个数字开头,以一个数字结尾
  • [^0-9]*其余的非数字数据
  • \1指向捕获的组中的数据。
相关问题