비슷한 결과를 얻으려고하면 Java 문자열 리터럴에 있습니다. 그 중 두 개가 있으면 \, 그렇지 않으면 뒤 따르는 모든 것을 "이스케이프"합니다. 따라서 단일 릴리스 문자 뒤에 오는 구분 기호가 있으면 계산에 포함되지 않습니다. 그러나 두 개의 해제 문자는 해제 문자 리터럴로 해결되므로 다음 구분 기호는 구분 기호로 간주되어야합니다. 따라서 홀수의 릴리스 문자가 구분 기호 앞에 오는 경우 무시됩니다. 0 또는 짝수의 경우 구분 기호입니다. 따라서 아래 코드 예제에서 :Java 정규 표현식을 사용하여 구분 기호를 찾으려면
?: <- : is not a delimiter
??: <- : is a delimiter
???: <- : is not a delimiter
????: <- : is a delimiter
다음은 작동하지 않는 샘플 코드입니다.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestPattern
{
public static void main(final String[] args)
{
final Matcher m = Pattern.compile("(\\?\\?)*[^\\?]\\:").matcher("a??:b:c");
m.find(0);
System.out.println(m.end());
}
}
작동합니다 \\ : 첫째, 다음 "?의 모든 짝수는"트릭을 할 것 같다? ?) + :' – Bohemian
아니요. 본문을 읽으면 내가하고 싶은 것을 볼 수 있습니다. 아무 것도 없을지도 모릅니다. 전혀하지만 구분 기호와 일치해야합니다. 이스케이프 처리되지 않은 구분 기호와 일치해야합니다. – mentics
나는 무엇을하려고하는지 잘 모르겠습니다. 몇 가지 예를 게시하고 일치/찾으려는 대상과 생략하려는 대상을 보여주는 몇 가지 결과를 게시 할 수 있습니까? 또한'?'와':'사이의 관계는 무엇입니까? 구분 기호 란 무엇입니까? 구분 기호가 짝수 개의 물음표와 콜론으로 설정된 경우'[\ \? \ *?]'부분없이'(\\? \\?) * :'를 사용해보십시오. – Pshemo