From 068fc7f2e81178e55fa191a13709af64b1a163f6 Mon Sep 17 00:00:00 2001 From: EricsHu <hrr145632> Date: 星期一, 05 十二月 2022 14:27:43 +0800 Subject: [PATCH] 处理编码 --- src/main/java/com/qxueyou/scc/exercise/service/impl/parser/ItemParser.java | 36 ++++++++++++++++++------------------ 1 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/exercise/service/impl/parser/ItemParser.java b/src/main/java/com/qxueyou/scc/exercise/service/impl/parser/ItemParser.java index d2e0658..fd5bd7b 100644 --- a/src/main/java/com/qxueyou/scc/exercise/service/impl/parser/ItemParser.java +++ b/src/main/java/com/qxueyou/scc/exercise/service/impl/parser/ItemParser.java @@ -14,21 +14,21 @@ public class ItemParser extends Parser { /** - * 习题开始模式匹配 + * 涔犻寮�濮嬫ā寮忓尮閰� */ Pattern patternItem = Pattern.compile("\\d+"); - private Pattern analysis = Pattern.compile("解析"); + private Pattern analysis = Pattern.compile("瑙f瀽"); /** - * 习题选项编号模式[带括号] + * 涔犻閫夐」缂栧彿妯″紡[甯︽嫭鍙穄 */ - //Pattern optNoWithBrackets = Pattern.compile("\\(?[ABCDEFabcdef]\\)?[、..]"); + //Pattern optNoWithBrackets = Pattern.compile("\\(?[ABCDEFabcdef]\\)?[銆�.锛嶿"); /** - * 习题选项 word自带的格式的 a.a、a) 这三种较为普遍,目前03可以解析成功,07解析失败*[\t] + * 涔犻閫夐」 word鑷甫鐨勬牸寮忕殑 a.a銆乤) 杩欎笁绉嶈緝涓烘櫘閬嶏紝鐩墠03鍙互瑙f瀽鎴愬姛锛�07瑙f瀽澶辫触*[\t] */ - Pattern optNoWithBrackets = Pattern.compile("\\(?[ABCDEFabcdef]\\)?[..、]"); + Pattern optNoWithBrackets = Pattern.compile("\\(?[ABCDEFabcdef]\\)?[.锛庛�乚"); ItemAnswerParser answerParser = new ItemAnswerParser(); @@ -40,25 +40,25 @@ } /** - * 解析 Item + * 瑙f瀽 Item * @param item * @param str * @return */ private ParseResult parse(Item item, String str) { - //习题 + //涔犻 Matcher itemNoMatch = patternItem.matcher(str); Matcher optNoWithBracketsMatch = optNoWithBrackets.matcher(str); Matcher analysisMatch = analysis.matcher(str); - //尝试调用上级解析器继续解析 + //灏濊瘯璋冪敤涓婄骇瑙f瀽鍣ㄧ户缁В鏋� if(!matchBegin(itemNoMatch) && !matchBegin(optNoWithBracketsMatch) && !matchBegin(analysisMatch)){ return new ParseResult(false,ParseResult.STEP_PRE,null); } - //解析 no,title + //瑙f瀽 no,title if(matchBegin(itemNoMatch)){ itemNoMatch.find(); String no = itemNoMatch.group(); @@ -71,39 +71,39 @@ item.setNo(no); item.setTitle(beautyTitle(title)); - //解析参考答案 + //瑙f瀽鍙傝�冪瓟妗� answerParser.parse(item, str); return new ParseResult(true,ParseResult.STEP_CUR,null); } } - //习题选项 + //涔犻閫夐」 if(matchBegin(optNoWithBracketsMatch)){ Option opt = new Option(); item.addNode(opt); return new ParseResult(false,ParseResult.STEP_NEXT,opt); } - //解析 习题分析 + //瑙f瀽 涔犻鍒嗘瀽 if(matchBegin(analysisMatch)){ analysisParser.parse(item,str); - //20150907修改:返回item + //20150907淇敼锛氳繑鍥瀒tem return new ParseResult(true,ParseResult.STEP_CUR,item); } - //20150907修改:本来返回true,没有解析到一个类型,抛到上层 + //20150907淇敼锛氭湰鏉ヨ繑鍥瀟rue锛屾病鏈夎В鏋愬埌涓�涓被鍨嬶紝鎶涘埌涓婂眰 return new ParseResult(false,ParseResult.STEP_PRE,null); } /** - * 去除习题标题多余字符 + * 鍘婚櫎涔犻鏍囬澶氫綑瀛楃 * @param title * @return */ private String beautyTitle(String title){ - String prefix = ".。~、."; + String prefix = ".銆倊銆侊紟"; while(title.length()>0 && prefix.contains(title.substring(0, 1))){ title = title.substring(1); } @@ -112,7 +112,7 @@ public static void main(String[] args){ ItemParser parser = new ItemParser(); - parser.parse(null, "59、在培训效果评估的指标中,技能转换指标通常通过()来判断。"); + parser.parse(null, "59銆佸湪鍩硅鏁堟灉璇勪及鐨勬寚鏍囦腑锛屾妧鑳借浆鎹㈡寚鏍囬�氬父閫氳繃()鏉ュ垽鏂��"); } } -- Gitblit v1.8.0