Java commonmark-java 提取 LLM 返回的 Markdown 格式中的代码块

Java LLM Markdown About 1,183 words

需求

LLMMarkdown的形式返回,需要提取fenced code blockMarkdown书写的代码块)。

添加依赖

<dependency>
    <groupId>org.commonmark</groupId>
    <artifactId>commonmark</artifactId>
    <version>0.27.0</version>
</dependency>

代码

fencedCodeBlock.getInfo():代码块的语言标识,如java/json/js等。

fencedCodeBlock.getLiteral():代码块的具体内容。

AbstractVisitorvisit方法会多次执行。如果需要收集所有符合条件的代码块,可以在外层定义集合类。

static void main() {
    String md = """
            xxx
            
            ```json
            {
                "a": 123,
                "b": "haha"
            }
            ```
            <b>aa</b>
            ```json
            {
                "x": 456,
                "y": "hehe"
            }
            ```
            
            ```java
            ```
            """;

    Parser parser = Parser.builder().build();
    Node node = parser.parse(md);
    node.accept(new AbstractVisitor() {
        @Override
        public void visit(FencedCodeBlock fencedCodeBlock) {
            super.visit(fencedCodeBlock);
            System.out.println(fencedCodeBlock.getInfo());
            System.out.println(fencedCodeBlock.getLiteral());
        }
    });
    
}

文档

https://github.com/commonmark/commonmark-java

Views: 5 · Posted: 2026-06-30

———         Thanks for Reading         ———

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓
Prev Post
Today In History
Browsing Refresh