// 정규표현식으로 제거

 String.replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>","");



 // 한줄로 할려면 아래 추가

 String.replaceAll("("\r|\n|&nbsp;","");

            



.replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>","").replaceAll("\r|\n|&nbsp;","")




replaceFirst() / replaceAll() 메소드(함수)로 문자열을 치환할 때, 대소문자 구분없이 바꾸려면


정규식의 앞 부분에 (?i) 라는 옵션을 넣어주면 됩니다. 물음표+소문자i(아이)입니다.


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


  }

}



자바를 비롯한 C계열의 언어에서, 백슬래쉬(\) 문자는 이스케이프 문자이므로, 그 자체를 직접 표현하기 곤란합니다.


이때는 백슬래쉬(Backslash)를 이중으로 해주면 해결됩니다. 즉 "\" 를 "\\" 이렇게 하는 것입니다.


그리고 자바 정규식에서, 백슬래쉬 1개를 표현하기 위해서는 백슬래시를 4개 적어주면 됩니다.


아래 예제에서 replaceAll() 메소드(함수)는, 정규식을 파라미터로 입력받기에 4개로 표현했습니다.


public class Foo {

  public static void main(String[] args) {


    String s  = "자장면\\짬뽕";    // 원본 문자열 정의

    String s2;


    System.out.println(s);         // 원본 문자열 출력: 자장면\짬뽕




    /////////////////////////////////////////

    // 백슬래쉬 문자열 치환

    /////////////////////////////////////////


    s2 = s.replace("\\", "ABC");

    System.out.println(s2);        // 출력 결과: 자장면ABC짬뽕


    s2 = s.replaceAll("\\\\", "ZZZ");

    System.out.println(s2);        // 출력 결과: 자장면ZZZ짬뽕



  }

}


어떤 문자열 속에, 특정 문자열이 포함되어 있는지 찾으려면,


String 클래스의 matches() 라는 메소드(함수)를 사용하여 찾을 수 있습니다. 정규식을 입력받습니다.


import java.io.*;

import java.util.regex.*;


class Foo {

  public static void main(String[] args) {


    String s = "abcdoooooefghi";


    try {

      if (s.matches(".*ooo.*"))

        System.out.format("매치되었습니다.%n");

      else

        System.out.format("그런 문자열이 없습니다.%n");


    } catch (PatternSyntaxException e) { // 정규식에 에러가 있다면

        System.err.println(e);

        System.exit(1);

    }



  }

}



 replaceAll에서 정규표현식 특수문자 취급 자바



1. []으로 싸주면 문자자체로 인식하는 것들.


* ⇒ [*]

+ ⇒ [+]

$ ⇒ [$]

| ⇒ [|]

? ⇒ [?]


2. \\를 붙여줘야 하는 것들.


( ⇒ \\(

) ⇒ \\)

{ ⇒ \\{

} ⇒ \\}

^ ⇒ \\^

[ ⇒ \\[

] ⇒ \\]



3. 자바의 특수문자는 \을 쓴다.


" ⇒ \"



4. 나머지 부호들은 괜찮은 듯 하다.

확인된 것.


! # % & @ ` : ; - . < > , ~ '



ex ) 위에 놈들 다 지워 보자. - 4번 제외


String c = "?$(){}*+^|[]";

c = c.replaceAll("[?][$]\\(\\)\\{\\}[*][+]\\^[|]\\[\\]", "");


반응형

'JAVA' 카테고리의 다른 글

자바 xss필터  (0) 2015.03.09
자바 날짜 함수 계산  (0) 2015.03.09
서버 아이피 알아 오기  (0) 2015.03.05
rs 개수 가지고 오기  (0) 2015.03.05
resultset생성시 인자값을 이용한 설정  (0) 2015.03.05
Posted by 질주하는구
,