오류를 검색하기 위해 프로그램의 출력을 구문 분석해야합니다. 오류는 표시됩니다 같은 :Java 패턴이 가장 왼쪽 일치를 반환하지 않습니다.
[(필드 이름/값) = 규칙을 숫자 실패 (/존 칼 무슨 일이다는구?)] [(필드 이름/값) = (newLabel/오스카 아이 패드) 줄에 illegalchars]
가있을 수 있습니다 하나 이상의 오류 규칙을 실패하고, 각 오류에 대해 나는 굵게 단어/문장을 검색 할 수 있습니다.
static String s1 = Pattern.quote("[(FieldName/Value) = (");
static String s2 = Pattern.quote(") failed rule");
static String s3 = Pattern.quote("]");
static Pattern p = Pattern.compile(s1 + "(\\w+)/(.+)" + s2 + "(.+)" + s3);
while (matcher.find()) {
String token = matcher.group(1);
sb.append("#");
sb.append(token);
token = matcher.group(2);
sb.append("#");
sb.append(token);
token = matcher.group(3).trim();
sb.append("#");
sb.append(token);
}
을하지만 출력은 다음과 같습니다 : 위해 다음과 같이 내가 정규 표현식을 만드는거야 그렇게하는
#phrase#What is Up John Carl?) failed rule alphanumeric] [(FieldName/Value) = (newLabel/Óscar's IPad#illegalchars
은 그래서 두 경기, 한을 반환하지 않습니다. 첫 번째
"failed rule"
에서 멈추는 대신 두 번째 그룹을 나머지 문자열과 일치시킵니다. 나는 그것이 패턴의 첫번째
(.+)
에 의한다고 생각한다. 그러나 물건은 무엇이라도 거기에 갈 수있다. 그래서 나는
(.+)
를 필요로한다. 어떤 아이디어로 그것을 할 수 있습니까?
그건 속임수 였어. 감사!! –