241119 TIL - 정규식 활용하기 (Java, IntelliJ)

J_log·2일 전
0

정규식의 간단한 문법

정규식 (Regular Expression)은 문자열을 특정 패턴과 비교하거나 패턴을 기반으로 문자열을 찾고 수정할 때 유용하게 쓰인다. Java는 java.util.regex 패키지를 통해 정규식을 지원하며, IntelliJ에서는 정규식을 활용해 코드와 데이터를 빠르게 검색, 변환할 수 있다.


정규식의 기본 기호

  1. .(dot)
  • 임의의 한 문자를 의미한다.(줄바꿈 제외)
  • 예) 정규식 a.b는 "a_b", "axb"와 매치되지만 "ab", "acdb"는 매치되지 않음.
  1. *(asterisk)
  • 앞의 문자가 0번 이상 반복됨을 의미한다.
  • 예) 정규식 ab*c는 "ac", "abc", "abbc"와 매치
  1. +(plus)
  • 앞의 문자가 1번 이상 반복됨을 의미한다.
  • 예) 정규식 ab+c는 "abc", "abbc"와 매치되지만 "ac"는 매치되지 않음.
  1. |(pipe)
  • OR 조건으로 사용.
  • 예) 정규식 a|b는 "a", "b"와 매치
  1. ( )(grouping)
  • 그룹화로 부분 패턴을 묶거나 캡처에 사용한다.
  • 예) 정규식 (ab)+는 "abab"과 매치
  1. [ ](character set)
  • 대괄호 안의 문자들 중 하나와 매치
  • 예) 정규식 [abc]는 "a", "b", "c"와 매치
  1. [^](negation)
  • 대괄호 안의 문자들을 제외한 문자와 매치
  • 예) 정규식 [^abc]는 "d", "e"와 매치

Java에서 정규식 활용하기

Java에서는 Pattern과 Matcher 클래스를 사용하여 정규식을 적용한다.

예제 (이메일 검증)

import java.util.regex.Pattern;

public class RegexExample {
    public static void main(String[] args) {
        String email = "example@test.com";
        String regex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$";
        
        boolean isValid = Pattern.matches(regex, email);
        System.out.println("이메일 유효성: " + isValid); // true 출력
    }
}

IntelliJ에서 정규식 활용

IntelliJ에서는 Find in Path(검색) 기능을 통해 정규식을 활용할 수 있습니다.

그림에 보이는 Regex 옵션을 체크한다.

예제 검색

  • 메서드 호출 찾기 : 정규식 myMethod([^\)]*) → myMethod(...) 형식의 호출 검색
  • 특정 변수명 찾기 : 정규식 int\s+[a-zA-Z_][a-zA-Z_0-9]* → int로 선언된 변수 검색.

테이블 데이터를 Java 코드로 변환

  1. 테이블 데이터

    1,John,25
    2,Jane,30

  2. 정규식 변환

  • 검색 : (\d+),([a-zA-Z]+),(\d+)
  • 대체 : new User($1, "$2", $3),
  1. 결과
new User(1, "John", 25),
new User(2, "Jane", 30),

0개의 댓글