Java의 `String.replaceAll` 메서드를 사용할 때 슬래시(`/`)를 포함한 정규표현식을 적용하는 경우, 슬래시는 정규표현식에서 특수문자로 간주되어 escaping이 필요합니다. 슬래시 자체를 찾기 위해서는 `\\`로 escaping해야 합니다.
예를 들어, 문자열에서 모든 슬래시를 언더스코어(`_`)로 바꾸고 싶다면 다음과 같이 할 수 있습니다:
########################### ########################### ###########################
public class Main {
public static void main(String[] args) {
String input = "This/is/a/test/string";
String replaced = input.replaceAll("/", "_");
System.out.println(replaced);
}
}
########################### ########################### ###########################
만약 정규표현식을 사용하여 슬래시를 찾고 싶다면, 다음과 같이 해야 합니다:
########################### ########################### ###########################
public class Main {
public static void main(String[] args) {
String input = "This/is/a/test/string";
String replaced = input.replaceAll("/", "\\\\/");
System.out.println(replaced);
}
}
########################### ########################### ###########################
여기서 `replaceAll`의 두 번째 인자는 정규표현식이기 때문에 슬래시를 찾기 위해 `\\/`로 escaping된 것입니다.
만약 이를 더 간편하게 하려면, `replace` 메서드를 사용할 수 있습니다. `replace`는 일반 문자열을 찾아 교체하는 데 사용됩니다:
########################### ########################### ###########################
public class Main {
public static void main(String[] args) {
String input = "This/is/a/test/string";
String replaced = input.replace("/", "_");
System.out.println(replaced);
}
}
########################### ########################### ###########################
이 경우에는 정규표현식이 아니기 때문에 escaping이 필요하지 않습니다.
'게으른 개발자의 끄적거림' 카테고리의 다른 글
Eclipse Servlet 설치 방법 (0) | 2023.11.29 |
---|---|
Eclipse Tomcat 설치 및 서버 연결하는 방법 (0) | 2023.11.29 |
Java import 에러 (0) | 2023.11.27 |
Java class, interface, or enum expected 에러 해결법 (0) | 2023.11.27 |
.sh 파일이란? (1) | 2023.11.23 |