package com.qxueyou.scc.exercise.service.impl.parser;
|
|
import java.util.regex.Matcher;
|
import java.util.regex.Pattern;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import com.qxueyou.scc.exercise.service.impl.Node;
|
import com.qxueyou.scc.exercise.service.impl.ParseResult;
|
import com.qxueyou.scc.exercise.service.impl.Parser;
|
import com.qxueyou.scc.exercise.service.impl.node.Item;
|
|
public class ItemAnalysisParser extends Parser {
|
|
/**
|
* ½âÎö×Ö·û´®
|
*/
|
private String analysisStr = "½âÎö";
|
|
/**
|
* ½âÎö×Ö·û´®ÕýÔòģʽ
|
*/
|
private Pattern analysis = Pattern.compile(analysisStr);
|
|
|
@Override
|
public ParseResult parse(Node node, String str) {
|
return parseAnalysis((Item)node,str);
|
}
|
|
/**
|
* ½âÎö Item ²Î¿¼´ð°¸
|
* 1.½âÎö³öÀàËÆ *** ( ab ) ÕâÑùµÄ²Î¿¼´ð°¸
|
* 2.½«ÀàËÆ²Î¿¼´ð°¸ ( ab ) Ìæ»»³É ( )
|
* @param item
|
* @param str
|
* @return
|
*/
|
private ParseResult parseAnalysis(Item item, String str) {
|
|
//ϰÌâÑ¡Ïî
|
Matcher analysisMatch = analysis.matcher(str);
|
|
//·µ»Ø
|
if(!matchBegin(analysisMatch)){
|
return new ParseResult(false,ParseResult.STEP_CUR,null);
|
}
|
|
analysisMatch.reset();
|
if(analysisMatch.find()){
|
|
String group = analysisMatch.group();
|
|
String analysisS = str.substring(group.length());
|
|
if(StringUtils.isEmpty(item.getAnalysis())){
|
item.setAnalysis(beautyContent(analysisS));
|
}else{
|
item.setAnalysis(item.getAnalysis().concat(beautyContent(analysisS)));
|
}
|
|
}
|
|
//20150907Ð޸ģº±¾À´·µ»Øtrue£¬Ã»ÓнâÎöµ½Ò»¸öÀàÐÍ£¬Å×µ½Éϲã
|
return new ParseResult(false,ParseResult.STEP_CUR,null);
|
|
}
|
|
/**
|
* È¥³ýÎı¾ÖжàÓà×Ö·û
|
* @param content
|
* @return
|
*/
|
private String beautyContent(String str){
|
String prefix = "£º:.¡£~¡¢¡¢£®£®";
|
String content = str;
|
while(content.length()>0 && prefix.contains(content.substring(0, 1))){
|
content = content.substring(1);
|
}
|
return content;
|
}
|
}
|