2022년 4월 1일 금요일

정규식을 활용한 비교 구문 분해

 비교 구문은 문자열중 <, >, <=, >=, ==, != 의 구문을 중심으로 왼쪽과 오른쪽을 구분하여 

가져 오기 위한 정규식을 사용합니다. 


해당 구문은 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;

}

댓글 없음:

댓글 쓰기