String.replaceAll을 사용하여 문자열의 일부 공백을 잘라내려고합니다. 그러나 정규 표현식 패턴의 여러 동시 인스턴스가 문자열에 나타나면 모든 두 번째 인스턴스 만 교체됩니다.Java String.replaceAll이 동시 반복 시퀀스를 대체하지 않음
아주 간단한 예 : 내가보고 싶은
String theString = "foo x x x x x bar";
String trimmed = theString.replaceAll("x\\s*x", "xx");
System.out.println(theString);
System.out.println(trimmed);
:
foo x x x x x bar
foo xxxxx bar
내가 볼 무엇 :
foo x x x x x bar
foo xx xx x bar
완전히 대체하기는 대체 텍스트를 고려하지 않는 것 같다 대신 자신을 대체하기위한 후보로, 대신에 기분 좋게 건너 뜁니다.
쉽게 해결할 수 있습니까?
* "대체 텍스트를 대체 문자로 간주하지 않습니다. 그 자체가 바뀌었고 그 대신에 기분 좋게 앞으로 건너 뜁니다. "* 올바른, 모든 문자열 대체 방법에 대한 ** 매우 ** 비정상적인 동작입니다. –