티스토리 뷰

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);

  }
}




컴파일 및 실행 결과 화면:

D:\Z>javac Foo.java && java Foo
원본:    Abc abC ABC abc

치환(1): ZZZ abC ABC abc
치환(2): ZZZ ZZZ ZZZ ZZZ



만약 (?i) 라는 옵션이 없다면, 원본 문자열에서, 소문자로 된 "abc" 만 "ZZZ"로 변경됩니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함