비교 구문은 문자열중 <, >, <=, >=, ==, != 의 구문을 중심으로 왼쪽과 오른쪽을 구분하여
가져 오기 위한 정규식을 사용합니다.
해당 구문은 and, or 등의 논리 연산이 모두 정비된 문자열을 대상으로 합니다
상대적으로 간단한 정규식을 사용할 수 있습니다.
public static Map<String, String> parseStringCompareBlocks(String str) {
if ( CommonBaseUtility.isEmptyValue(str) ) {
return null;
}
String regStr = "([^<>=!]+)([<>=!]{1,2})([^<>=!]*)";
Pattern pObj = Pattern.compile(regStr,Pattern.MULTILINE|Pattern.CASE_INSENSITIVE);
Matcher mObj = pObj.matcher(str);
Map<String, String> result = new HashMap<String,String>();
if ( mObj.find()) {
String first = mObj.group(1).trim();
String mark = mObj.group(2).trim();
String last = mObj.group(3);
result.put("TYPE", "COMPARE");
result.put("LEFT", first);
result.put("MARK", mark);
result.put("RIGHT", last);
}
return result;
}
댓글 없음:
댓글 쓰기