map = new HashMap<>(1);
+ paragraph = paragraph.trim();
+ map.put(typeEnum, paragraph);
+ consumer.accept(map);
+ return paragraph;
+ }
+}
diff --git a/web/src/main/java/com/ibeetl/jlw/service/strategy/WordQuestionStem.java b/web/src/main/java/com/ibeetl/jlw/service/strategy/WordQuestionStem.java
new file mode 100644
index 00000000..91f3d6ea
--- /dev/null
+++ b/web/src/main/java/com/ibeetl/jlw/service/strategy/WordQuestionStem.java
@@ -0,0 +1,57 @@
+package com.ibeetl.jlw.service.strategy;
+
+
+import lombok.Getter;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Consumer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ *
+ * 取题干
+ * 因为不同的表 所以必须用不同的策略去区分,题目和选项。
+ *
+ *
+ * @author mlx
+ * @date 2022/5/30
+ * @modified
+ */
+public class WordQuestionStem implements WordStrategy {
+
+ /**
+ * 匹配img标签 或者 1. 1、 开头的这类的题干
+ */
+// private final String REGEX = "(\\d+[\\.\\、\\.])|()";
+ private final String REGEX = "^\\d+[\\.\\、\\.]";
+
+ @Getter
+ private StrategyContext.QuestionParagraphTypeEnum typeEnum = StrategyContext.QuestionParagraphTypeEnum.STEM;
+
+ /**
+ * 例子: 12. 12、
+ * @param paragraph 段落字符串
+ * @return
+ */
+ @Override
+ public boolean support(String paragraph) {
+ Matcher matcher = Pattern.compile(REGEX).matcher(paragraph.trim());
+ return matcher.find() && matcher.start() == 0;
+ }
+
+ @Override
+ public String process(String paragraph, Consumer