• 회원가입
  • 로그인
  • 구글아이디로 로그인

[class] Java - RegEx (정규식) - 정규표현식

2,558  
목차
  1. 정규식 (= 정규표현식 Regular Expression)
  2. 플래그 (Flags)
  3. 정규식 패턴 (RegEx Patterns)
  4. 메타문자 (Metacharacters)
  5. 수량자 (Quantifiers)
  6. 회피문자 - 특수문자 검색
  7. 정규식 관련 주소

 

정규식 (= 정규표현식 Regular Expression)

 

검색 패턴을 형성하는 일련의 문자. 

 


 

1.

데이터 검색하거나 검색된 데이터를 변경 시 유용한데.

정규식은 단일 문자이거나 더 복잡한 패턴 일 수 있음.

 

2.

Java에는 기본 내장된 정규식 클래스 없지만,

java.util.regex 패키지 가져와 정규식 사용 가능.

 

PS.

java.util.regex 패키지에 포함된 클래스 용도.

Pattern 클래스 - 패턴 정의. (검색에 사용).

Matcher 클래스 - 패턴 검색.

PatternSyntaxException 클래스 - 정규식 패턴의 구문 오류 표시.

 


[예제]

 

import java.util.regex.Matcher;

import java.util.regex.Pattern;


public class Hz {

  public static void main(String[] args) {

    Pattern pattern = Pattern.compile("homzzang", Pattern.CASE_INSENSITIVE);

    Matcher matcher = pattern.matcher("홈짱닷컴 Homzzang.com");

    boolean matchFound = matcher.find();

    if(matchFound) {

      System.out.println("일치 발견 O");

    } else {

      System.out.println("일치 발견 X");

    }

  }

}

 

결과값:

일치 발견 O


PS. 위 예제 해설.

 

1.

Pattern.compile(a, b)

a : 검색 패턴. (위 예제: homzzang 텍스트 찾기.)

b : 플래그. (위 예제: 대소문자 구분 X)

 

2.

pattern.matcher(c) 메서드

c : 검색대상. (위 예제: '홈짱닷컴 Homzzang.com' 문자열)

패턴을 검색 대상에서 찾은 후, 검색 후 정보를 Matcher 객체로 반환. 

 

3.

matcher.find()

문자열에서 패턴 발견 시 true 반환. 그렇지 않으면 false 반환. 

 

 

플래그 (Flags)

 

패턴 검색 방법을 수정.

 


(예) Pattern.compile() 메서드의 플래그 경우,

 

Pattern.CASE_INSENSITIVE

검색 시, 대소문자 무시.

 

Pattern.LITERAL

패턴의 특수문자는 특별한 의미 없으며 검색시 일반 문자로 취급.

 

Pattern.UNICODE_CASE

비 영문 문자도 무시 위해 CASE_INSENSITIVE 플래그와 함께 사용.

 

PS.

더 자세한 건 아래 블로그 참조.


 

정규식 패턴 (RegEx Patterns)


Pattern.compile(a, b)

※ a : 검색 패턴.  이곳에 들어갈 패턴 종류는 아래 참고.

※ b : 플래그.



PS. 대괄호 :  문자 범위.

 

[abc]

a, b, c 중 하나이면 일치. 

 

[^abc]

a, b, c 아니면 일치. 

 

[a-zA-Z]

a~z까지 소문자, A~Z까지 대문자 중 하나면 일치.(범위)

 

[a-d[m-p]]

a~d까지, 또는 m~p까지 중에 하나면 일치. [a-dm-p] (합집합) 

 

[a-z&&[def]]

d, e, f 중 하나와 일치. (교집합)

 

[a-z&&[^bc]]

b와 c 제외한 a~z까지 중 하나면 일치. [ad-z] (차집합) 

 

[a-z&&[^m-p]]

m~p 까지 제외한 a~z까지 중 하나면 일치. [a-lq-z] (차집합)

 

 

메타문자 (Metacharacters)

 

특별한 의미 가진 문자.

 


 

|

|로 구분 된 패턴 중 하나와 일치하는 항목 찾음.

(예) html|css|js

 

.

어떤 문자의 인스턴스(=예제)를 하나만 찾음.

 

^

문자열의 시작 부분에서 일치 항목 찾음.

(예) ^Homzzang

 

$

문자열 끝에서 일치 항목 찾음.

(예) com$

 

\d

숫자 찾기.

 

\s

공백 문자 찾기.

 

\b

단어의 시작이나 끝에서 일치 항목 찾음. 

※ 시작에서 찾기 (예) \bHomzzang

※ 끝에서 찾기. (예) com\b

 

\uxxxx

16 진수 xxxx로 지정된 유니코드 문자 찾음.

 

 

수량자 (Quantifiers)

 

패턴이 나오는 횟수 지정.

 


 

n+

하나 이상의 n을 포함하는 모든 문자열과 일치.

 

n*

n이 0 개 이상 포함된 모든 문자열과 일치.

 

n?

n이 0개 또는 1개 포함된 모든 문자열과 일치.

 

n{x}

X n의 시퀀스를 포함하는 모든 문자열과 일치.

 

 

n{x, y}

X에서 Y까지의 시퀀스를 포함하는 모든 문자열과 일치.

 

n{x,}

적어도 X n의 시퀀스를 포함하는 모든 문자열과 일치.

 

 

회피문자 - 특수문자 검색

[특수문자 검색 방법]

 

\\특수문자

 

(예) 물음표 검색 경우, \\?


PS. 역슬래시 (= 입력 금지 회피) 2개가 필요한 이유.

  • 해당 특수문자 입력금지 회피용 1개
  • Java 문자열 내 백슬래시 입력금지 회피용 1개

 

 

정규식 관련 주소

 

 



분류 제목
basic Java - Home (입문) - 추천 링크
basic Java - Intro (소개) - 용도・특징
basic Java - Start (시작) - 설치・실행・버전확인・한글 깨짐 방지 + 이클립스 (설치/삭제・제거/사용법…
basic Java - Syntax (구문) - main() 메서드, 출력구문
basic Java - Comment (주석)
basic Java - Variable (변수) ★
basic Java - Data Type (데이터 타입) - 자료형 ★
basic Java - Type Casting (데이터 타입 변경) - 자료형 변환
basic Java - Operator (연산자)
basic Java - String (문자열)
basic Java - Math (수학)
basic Java - Boolean (참거짓)
basic Java - If ... Else - (이프 조건문) ★
basic Java - Switch (스위치 조건문) ★
basic Java - While Loop (와일 반복문) ★
basic Java - For Loop (포 반복문) ★
basic Java - Break/Continue (브레이크/컨티뉴) 키워드 ★ - 반복문 빠져나가기 / 특정 조건 건…
basic Java - Array (배열)
method Java - Method (메서드)
method Java - Method Parameter (메서드 매개변수)
1/10
목록
찾아주셔서 감사합니다. Since 2012