1
다른 패턴과 일치하지 않는 경우에만 패턴과 일치하는 하위 문자열을 대체하려고합니다. 예를 들어, 아래 표시된 코드에서 '% s'을 모두 바꾸고 싶지만 ': % s'은 그대로 둡니다.일치하는 패턴이 다른 패턴과 일치하지 않는 경우에만 일치하는 패턴을 대체하는 방법은 무엇입니까?
String template1 = "Hello:%s";
String template2 = "Hello%s";
String regex = "[%s&&^[:%s]]";
String str = template1.replaceAll(regex, "");
System.out.println(str);
str = template2.replaceAll(regex, "");
System.out.println(str);
출력은해야합니다 : 내 정규식에 뭔가를 놓친 거지
Hello:%s
Hello
. 모든 단서? 감사!
String regex = "(?<!:)%s";
그것은 바로 전에 :
이없는 경우에만 %s
일치 :
'네가티브 lookbehind'응? 작품 ... 덕분에 많이! – Bala