나는 단순히 정적 텍스트로 둘러싼 문자열을 캡처하려고합니다. 예를 들어 설명하겠습니다. 여기에 내가 함께 일하고 있어요 문자열 ... Regex를 사용하여 캡처 그룹 추출
String idInfo = "Any text up here\n" +
"Here is the id\n" +
"\n" +
"?a0 12 b5\n" +
"&Edit Properties...\n" +
"And any text down here";
또는 고급 인쇄에
...Any text up here
Here is the id
?a0 12 b5
&Edit Properties...
And any text down here
입니다 그리고 나는 시도하고 ID 번호를 인쇄하려면 다음 코드를 사용하고 있습니다 .. .
Pattern p = Pattern.compile("Here is the id\n\n\?[a-z0-9]{2}([a-z0-9]{2}){2}\n&Edit Properties...);
Matcher m = p.matcher(idInfo);
String idNum = m.group(1);
System.out.println(idNum);
내가 원하는 단순히 출력 ID 번호, 그래서이 예를 들어 원하는 출력은 ...
a0 12 b5
그러나 코드를 실행할 때 "일치하는 항목 없음"예외가 발생합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 내 솔루션을 구현하는 더 단순하고 우아한 방법이 있습니까?
당신의 코드가 너무 ID 주위 캡처 그룹의 괄호 부족보십시오. 그걸 발견 했어. 나는 그것이 "여기에 id \ n \ n \\입니까? ([a-z0-9] {2} ([a-z0-9] {2}) {2}) \ n & Edit Properties ..." "맞습니까? – user2150250
@ user2150250 네, 맞습니다. 내 코드가 귀하의 질문에 설명 된 결과물을 반환하지 않았다는 것을 놓쳤습니다. 이제 해결되었습니다. – Pshemo