정규 표현식을 사용하여 일치하는 부분을 버리는 방법은 무엇입니까?Regex - 일치를 버리는 법
public class main {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("(?<=b)([xyz])(?:a*?)c");
String string = "abyaacbxaaac";
Matcher matcher = pattern.matcher(string);
while(matcher.find()){
System.out.println(matcher.group());
}
}
}
출력은 여기에 있습니다 :
이yaac
xaaac
내가 출력을 원하는 경우에만 y
내가 실행 x
System.out.println(matcher.group());
즉, 일치하는 것을 폐기합니다. (?:a*?)
P.
는 내가 자신에 x
및 y
를 얻을 수 matcher.group(1)
을 사용할 수 있습니다 알고 있지만 난 단지 특정 그룹에 액세스 할 필요없이 출력 x
및 y
에 전체 경기를하고 싶습니다.
"Discard"는 "한 번의 일치 작업 내에서 텍스트의 불연속 부분을 찾습니다"를 의미합니다. 그것은 당신이 lookaround에 의지 할 수있을 때 가능하지 않습니다. 또는 그룹 캡처 및 추가 사후 처리. 또는 교체 방식을 사용합니다. –