좋아요. 구문 분석 중이므로 해당 문자열에 toUpperCase()를 사용해야합니다. 그 후 Java RegExp를 사용하고 있습니다. 문제는 어떤 이유로 Java의 String toUpperCase()가 공백을 수정하고 RegExp가 작동하지 않는다는 것입니다.Java toUpperCase() 및 RegExp 문제
UpperCase()에 공백을 무시하도록 지시하는 방법이 있습니까? 아니면 RegExp에서 이것을 처리 할 수 있습니까?
다음은 이것을 알아 내기 위해 사용하는 코드입니다. 아래에서 toUpperCase() 행의 주석을 제거하면 RegExp가 작동하지 않습니다 !!
String regExp = "([t][o][k][e][n][\\s]*[=][\\s]*)";
String content = "The token ='testing'" ;
//content = content.toUpperCase(); //uncomment this and RegExp will break!!!
Pattern pattern = Pattern.compile(regExp);
Matcher matcher = pattern.matcher(content);
if(matcher.find()){
int startIndex= matcher.start(1);
int endIndex = matcher.end(1);
String posStartExpression = content.substring(startIndex,endIndex);
System.out.println(posStartExpression);
}
당신이 "중단됩니다"에 의해 세계에서 무엇을 의미합니까? 대문자로 변경 될 때 공백 코드 포인트가 없으므로 공백을 변경하지 않습니다 *. 그리고 왜 피 묻은 곳 곳곳에 대괄호를 사용하고 있습니까? casefolding 대 casemapping을 이해합니까? 당신은 다른 하나가 필요할 때 하나를 사용하는 것 같습니다. 명령 행에서 대화 형 언어로 이것을 먼저 테스트 해 보셨습니까? 그렇지 않다면 왜 안 되겠습니까? 귀하의 소위 오류 메시지는 무엇입니까? 너 정말로 무엇을하려고하는거야? – tchrist