java.util.regex 패키지에 있는Match 클래스와 Pattern 클래스를 이용하여 문자열을 정규검증식으로 나타낼 수 있습니다.

 

boolean flag = Pattern.matches("^[a-zA-Z0-9]*$", strInput); 

 정규표현식의 내용은 다음을 의미합니다.

 

1) ^ : 문자열의 시작

2) $ : 문자열의 종료

3) . : 임의의 한 문자 (문자의 종류와 관계없음)

4) | : or의 의미임

5) ? : 앞 문자가 없거나 하나 있을때

6) + : 앞 문자가 하나 이상임 (최소 한개 이상)

7) * : 앞 문자가 없을 수도 있고, 무한정 많을 수도 있음

8) [] : 문자 클래스의 지정, 문자의 집합이나 범위를 나태내면 - 기호를 사용한다. [] 내에서 ^를 사용하면 not의 의미임

9) {} : 횟수나 범위를 나타냄. 예를 들어 k{5}의 경우 k가 5번 반복되는 경우임, a{3,5}는 a가 3번 이상 5번 이하 반복되는 경우임

10) \w : 알파벳이나 숫자

11) \W : \w의 not. 즉 알파벳이나 숫자를 제외한 문자

12) \d : [0-9]와 동일

13) \D : 숫자를 제외한 모든 문자

 

기본적인 정규 표현식과 그 예를 모아보면 다음과 같습니다.

 

1) 숫자만 : ^[0-9]*$

2) 영문자만 : ^[a-zA-Z]*$

3) 한글만 : ^[가-힣]*$

4) 영어 & 숫자만 : ^[a-zA-Z0-9]*$

5) E-Mail : ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$

6) 휴대폰 : ^01(?:0|1|[6-9]) - (?:\d{3}|\d{4}) - \d{4}$

7) 일반전화 : ^\d{2.3} - \d{3,4} - \d{4}$

8) 주민등록번호 : \d{6} \- [1-4]\d{6}

9) IP 주소 : ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})

 

이외에 자주 써먹는 정규식을 계속 모아야겠네요. ^^



String 클래스의 replaceAll() 메소드와 정규식을 사용하여 간단히 문자열에서 숫자만 추출할 수 있다.


코드는 다음과 같다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<p>/**
 * 숫자를 제외한 모든 문자를 제거하고 숫자문자열만 리턴한다.
 *
 * @return
 */
public static String removeCharExceptNumber(String str) {
    return str.replaceAll("[^0-9]", "");
     
    // 또는
    // return str.replaceAll("[^\\d]", "");
     
    // 또는
    // return str.replaceAll("\\D", "");
     
    // 모두 사용가능하다.
}
</p>

reference : http://stackoverflow.com/questions/6883579/java-regular-expression-removing-everything-but-numbers-from-string




JAVA HTML 태그 또는 모든 태그 형식 제거

잉비니 2017.01.16 18:10

JAVA - 정규표현식을 이용한 HTML 태그 또는 모든 태그 형식 제거

# HTML 제거

2006/12/04 15:10
HTML 태그는 < 로 시작해서 > 로 끝나고, 종료 태그의 경우는 로 끝난다. 따라서, 다음과 같은 정규 표현식은 HTML 태그를 모두 포함하게 된다.


<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>

자바 1.4부터 String.repalceAll(String regex, String replacemenet) 메소드를 제공하는데, 이 메소드는 문자열에서 regex의 정규 표현식에 일치하는 부분을 replacement로 취환해주는 기능을 제공한다.

특정 문자열에 HTML 태그를 제거하려면 위의 정규 표현식을 다음과 같이 적용하면 된다.

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


위 내용 출처 :  http://blog.livephoto.info/index.php?pl=115


# 모든 태그 형식 제거

'<'로 시작, '>'로 끝나는 형식

<[^>]*>


1String str = str.replaceAll("<[^>]*>", " ");



블로그 이미지

잉비니

,