java 获取markdown内容里面的图片路径并截取成数组

甄成弘
2023-12-01

1、java获取markdown内容图片路径

 /**
  * 将markdown中的图片地址取出
  *
  * @param markdown markdown内容
  */

    public static List<String> getMatchList(String markdown) {
        List<String> imagePrefixList = Stream.of(".jpg", ".bmp", ".gif", ".ico", ".pcx", ".jpeg", ".tif", ".png").collect(Collectors.toList());
        ;
        ArrayList<String> result = new ArrayList<>();
        String[] split = markdown.split("\\!\\[Description\\]\\(");
        for (String imgUrl : split) {
            if (StringUtils.isNotBlank(imgUrl) && (imgUrl.startsWith("http://") || imgUrl.startsWith("https://"))) {
                imagePrefixList.stream().filter(imagePrefix -> imgUrl.contains(imagePrefix)).forEach(imagePrefix -> result.add(imgUrl.substring(0, imgUrl.lastIndexOf(imagePrefix) + imagePrefix.length())));
            }
        }
        return result;
    }

如果只需要得到图片地址值,那么只需要方法一就可以了,方法二不需要

2、替换内容中的图片内容值,注意不是所有业务都需要替换,根据自己的实际业务来

    /**
     * 替换内容中的图片语法值
     *
     * @param markdown
     */
    public static String repUrl(String markdown) {
        String[] split = markdown.split("\\!\\[Description\\]\\(");
        for (String imgUrl : split) {
            if (StringUtils.isNotBlank(imgUrl) && (imgUrl.startsWith("http://") || imgUrl.startsWith("https://"))) {
                log.info("图片路径---------:", imgUrl);
                markdown = markdown.replace("![Description](" + imgUrl.substring(0, imgUrl.lastIndexOf(")")) + ")", "");
            }
        }
        return markdown;
    }
 类似资料: