Java/Basic

Regex

2023. 1. 23. 18:28
목차
  1. Regex (정규식)
  2. Regex 기호
  3. JAVA에서 사용

Regex (정규식)

전체 문자열 또는 문자열의 substring이 어떤 패턴 또는 규칙을 만족하는지 알고싶을때 Regex (정규식)을 사용한다. Regex는 문자열의 패턴을 나타내는 언어이다. 

 

Regex 기호

아래의 사이트에 잘 정리되어 있다. 왼쪽 메뉴의 CheatsSheet를 보고 실습하면서 기호를 파악하고 자세한 내용은 RegEx Reference를 참고하자.

 

https://regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

 

JAVA에서 사용

String 객체의 matches 메서드는 모든 문자열의 문자가 정규식에 매치되면 'true'를 아니면 'false'를 반환한다.

public class Main {
    public static void main(String[] args) throws IOException {
        String str1 = "AAAOA";
        String str2 = "BBBBB";

        String regex1 = "A+OA";
        String regex2 = "^[A-Za-z]*$";
        String regex3 = "((A|a)|(O|o))*";

        System.out.println("REGEX1 RESULT");
        if(str1.matches(regex1)) System.out.println("yes");
        else System.out.println("no");
        if(str2.matches(regex1)) System.out.println("yes");
        else System.out.println("no");
        System.out.println();

        System.out.println("REGEX2 RESULT");
        if(str1.matches(regex2)) System.out.println("yes");
        else System.out.println("no");
        if(str2.matches(regex2)) System.out.println("yes");
        else System.out.println("no");
        System.out.println();

        System.out.println("REGEX3 RESULT");
        if(str1.matches(regex3)) System.out.println("yes");
        else System.out.println("no");
        if(str2.matches(regex3)) System.out.println("yes");
        else System.out.println("no");
        System.out.println();
    }
}

 

문자열에서 정규식에 매칭되는 서브 문자열을 찾고 싶다면  Matcher 클래스를 사용하면 된다. 아래 코드는 숫자로만 구성된 서브 문자열의 시작 인덱스, 끝 인덱스, 서브 문자열을 출력한다.

public class Main {
    public static void main(String[] args) throws IOException {
        String str = "A1333CC444AAB55C66CC";
        String regex = "[0-9]+";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);

        while(matcher.find()) {
            int start = matcher.start();
            int end = matcher.end();
            System.out.println("start_idx : " + start + " " + "end_idx : " + end);
            System.out.println(matcher.group());
        }

        str = str.replaceAll("[0-9]+", "X");
        System.out.println(str);
    }
}

실행 결과

'Java > Basic' 카테고리의 다른 글

Java 람다식  (0) 2023.04.05
Java 익명 클래스  (0) 2023.04.04
[JVM - 2] ClassLoader  (0) 2022.10.25
Java 정렬  (0) 2022.09.07
[JVM - 1] JVM, JRE, JDK  (0) 2022.08.17
  1. Regex (정규식)
  2. Regex 기호
  3. JAVA에서 사용
'Java/Basic' 카테고리의 다른 글
  • Java 람다식
  • Java 익명 클래스
  • [JVM - 2] ClassLoader
  • Java 정렬
gunjoon98
gunjoon98
하루한방울gunjoon98 님의 블로그입니다.
gunjoon98
하루한방울
gunjoon98
전체
오늘
어제
  • 분류 전체보기 (139)
    • Computer Science (60)
      • Network (14)
      • DataBase (12)
      • Algorithm (14)
      • OS (9)
      • Computer Terminology (1)
      • DataStructure (10)
    • Spring (24)
      • Spring Basic (2)
      • Spring MVC (11)
      • Spring DB (4)
      • Spring Security (2)
      • Spring Test (1)
      • Spring Legacy (2)
      • 기타 (2)
    • Java (9)
      • Basic (7)
      • OOP (0)
    • WEB (14)
      • CSS (4)
      • JS (0)
      • HTTP (10)
    • PS (11)
      • 종만북 (10)
      • 모의 코테 (0)
      • 오답노트 (1)
    • Linux (6)
      • Ubuntu (6)
    • CM (5)
      • Git (5)
    • Project (0)
      • Deubot (0)
      • Scoreboard (0)
    • Infra (5)
      • Cloud (1)
      • CI&CD (3)
      • 쿠버네티스 (1)
    • Hadoop Echo System (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.
gunjoon98
Regex
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.