티스토리 뷰
replaceFirst() / replaceAll() 메소드(함수)로 문자열을 치환할 때, 대소문자 구분없이 바꾸려면
정규식의 앞 부분에 (?i) 라는 옵션을 넣어주면 됩니다. 물음표+소문자i(아이)입니다.
http://mwultong.blogspot.com/2006/12/java-replace-string-ignore-case-regex.html
영문 알파벳 대소문자 구분없이 치환 예제
파일명: Foo.java
public class Foo {
public static void main(String[] args) {
String s = "Abc abC ABC abc"; // 원본 문자열
String s2;
System.out.println("원본: " + s);
System.out.println(); // 줄바꿈
s2 = s.replaceFirst("(?i)abc", "ZZZ");
System.out.println("치환(1): " + s2);
s2 = s.replaceAll("(?i)abc", "ZZZ");
System.out.println("치환(2): " + s2);
}
}
public static void main(String[] args) {
String s = "Abc abC ABC abc"; // 원본 문자열
String s2;
System.out.println("원본: " + s);
System.out.println(); // 줄바꿈
s2 = s.replaceFirst("(?i)abc", "ZZZ");
System.out.println("치환(1): " + s2);
s2 = s.replaceAll("(?i)abc", "ZZZ");
System.out.println("치환(2): " + s2);
}
}
컴파일 및 실행 결과 화면:
D:\Z>javac Foo.java && java Foo
원본: Abc abC ABC abc
치환(1): ZZZ abC ABC abc
치환(2): ZZZ ZZZ ZZZ ZZZ
원본: Abc abC ABC abc
치환(1): ZZZ abC ABC abc
치환(2): ZZZ ZZZ ZZZ ZZZ
만약 (?i) 라는 옵션이 없다면, 원본 문자열에서, 소문자로 된 "abc" 만 "ZZZ"로 변경됩니다.
'program' 카테고리의 다른 글
bean, dto, vo, pojo 등 차이점 (0) | 2013.10.03 |
---|---|
Java Code Convention (0) | 2013.10.02 |
게시판 내용에서 HTML 태그 허용, 부분허용, 또는 치환 (0) | 2013.08.27 |
웹 게임 서버 구성도 (0) | 2013.07.26 |
우분투에서 NAS 마운트하기 (네트워크드라이브) (0) | 2013.07.24 |