정규식

김나영·2023년 6월 19일
0

Java

목록 보기
1/2

정규표현식(Regular Expression)이란?

  • 문자열 데이터 중에서 원하는 조건(패턴)과 일치하는 문자열 부분을 찾아내기 위해 사용하는 것

  • 미리 정의된 기호와 문자를 이용해서 작성한 문자열

정규식 문법 기호 모음

자바 정규식 문법

1. String 클래스의 정규식 문법

  • String 문자열에 바로 정규표현식을 적용하여 필터링이 가능

  • String 클래스에서 지원하는 정규식 메소드로는 다음 3가지가 존재

1) boolean matches(String regex)

  • 인자로 주어진 정규식에 매칭되는 값이 있는지 확인

2) String replaceAll(String regex, String replacement)

  • 문자열내에 있는 정규식 regex와 매치되는 모든 문자열을 replacement 문자열로 바꾼 문자열을 반환

3) String[] split(String regex)

  • 인자로 주어진 정규식과 매치되는 문자열을 구분자로 분할

2. regex 패키지 클래스

  • 정규 표현식을 전문적으로 다루는 클래스인 java.util.regex 패키지를 제공

  • Pattern 클래스와 Matcher 클래스가 사용

  • 정규식을 Pattern 객체로 미리 컴파일 해둘수 있어서 처리 속도가 좀 더 빠름

  • 매칭된 데이터를 좀더 상세히 다룰 수 있음

1) Pattern 클래스

  • 문자열을 정규표현식 패턴 객체로 변환해주는 역할

    • 문자열을 정규식 문법에 알맞게 구성
    • 그렇지않으면 예외(Exception)이 발생
  • 공개된 생성자를 제공하지 않음

  • 정규식 패턴 객체를 생성하려면 compile() 정적 메소드를 호출

  • matches() 메소드를 활용하여 정규식 검증을 할 수도 있음

    • 첫번째 입력값은 정규식 문자열
    • 두번째 입력값은 검증 대상 문자열
    • 검증 후 대상문자열이 정규표현식과 일치하면 true, 그렇지 않다면 false값을 리턴

☞ 메서드 종류

① compile(String regex)

  • 정규표현식의 패턴을 작성

② matches(String regex, CharSequence input)

  • 정규표현식의 패턴과 문자열이 일치하는지 체크

  • 일치할 경우 true, 일치하지 않는 경우 false를 리턴

    • 일부 문자열이 아닌 전체 문자열과 완벽히 일치 해야함

③ asPredicate()

  • 문자열을 일치시키는 데 사용할 수있는 술어를 작성

④ pattern()

  • 컴파일된 정규표현식을 String 형태로 반환

⑤ split(CharSequence input)

  • 문자열을 주어진 인자값 CharSequence 패턴에 따라 분리

2) Matcher 클래스

  • 대상 문자열의 패턴을 해석하고 주어진 패턴과 일치하는지 판별하고 반환된 필터링된 결과값들을 지니고 있음

  • 공개된 생성자가 없음

  • Pattern 객체의 matcher() 메소드를 호출해서 얻음

☞ 정규식 결과 반환 로직 순서

  • Pattern.compile() 을 통해 정규식문자열을 패턴 객체로 변환

  • 패턴 객체에서 matcher() 메소드를 통해 문자열을 비교하고 검사한 결과값을 담은 매처 객체를 반환

  • 매처 객체에서 메소드로 원하는 결과값을 뽑음

  • Pattern.matches() 메소드는 단순히 참/거짓 만 결과를 반환하지만 Matcher 클래스의 group() 메소드를 통해 필터링된 문자열을 출력

☞ 메서드 종류

① find()

  • 패턴이 일치하는 경우 true를 반환, 불일치하는 경우 false반환

  • 여러개가 매칭되는 경우 반복실행하면 일치하는 부분 다음부터 이어서 매칭됨

② find(int start)

  • start 위치 이후부터 매칭검색

③ start()

  • 매칭되는 문자열의 시작위치 반환

④ start(int group)

  • 지정된 그룹이 매칭되는 시작위치 반환

⑤ end()

  • 매칭되는 문자열 끝위치의 다음 문자위치 반환

⑥ end(int group)

  • 지정된 그룹이 매칭되는 끝위치의 다음 문자위치 반환

⑦ group()

  • 매칭된 부분을 반환

⑧ group(int group)

  • 그룹화되어 매칭된 패턴중 group 번째 부분 반환

⑨ groupCount()

  • 괄호로 지정해서 그룹핑한 패턴의 전체 개수 반환

⑩ matches()

  • 패턴이 전체 문자열과 일치할 경우 true반환

  • 일부 문자열이 아닌 전체 문자열과 완벽히 일치 해야함


출처 : 자바 정규식 사용법 정리

0개의 댓글