String.replaceAll(regex)이 두 번 대체되는 이유
코드 조각에서:
System.out.println("test".replaceAll(".*", "a"));
정규식 .*는 0자를 포함한 모든 문자와 일치합니다. 즉, 전체 문자열을 두 번 일치시킬 수 있습니다.
이 동작은 Java 정규식 엔진의 버그로 간주되지 않습니다. . 대신 .*가 모든 문자와 일치하는 방식의 결과입니다.
대안
이 동작을 방지하려면 다음 대안을 사용할 수 있습니다.
"test".replaceFirst(".*", "a")
System.out.println("test".matches(".*")); // Prints true
System.out.println("test".replaceAll(".+", "a")); // Prints a
위 내용은 \'.*\'를 사용할 때 String.replaceAll(regex)이 두 번 바뀌는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!