Java字符串中如何获取以某一个子串开头,另一个子串结尾的子串?

比如:“药品名称:999感冒灵,数量:1盒,用法:一次一包”这个字符串我想取到以“药品名称”开头,以“1盒”结尾的子串,即“药品名称:999感冒灵,数量:1盒”。 (不能用下标,因为药品名称会动态变化)

import java.util.regex.*;

class Untitled {
    public static void main(String[] args) {
        String line = "药品名称:999感冒灵,数量:1盒,用法:一次一包";
        String pattern = "药品名称.+盒";
        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(line);
        if (m.find( )) {
            System.out.println("找到: " + m.group(0) );
        } else {
            System.out.println("没有");
      }
    }
}

找到: 药品名称:999感冒灵,数量:1盒