정규식(Regular Expression)

scheuun·2023년 10월 14일

정규식(Regular Expression)은 문자열의 패턴을 나타내기 위한 형식 언어로, 문자열에서 원하는 패턴을 찾거나 검색하고자 할 때 사용된다.

  • 문자 클래스 (Character Classes):
    .: 어떤 한 문자와 매치됨.
    [abc]: a, b, c 중 하나의 문자와 매치됨.
    [^abc]: a, b, c를 제외한 다른 문자와 매치됨.

  • 특수 문자 (Special Characters):
    \: 특수 문자를 이스케이프(escape)하여 문자 그대로 매치됨.
    ^: 문자열의 시작을 나타냄.
    $: 문자열의 끝을 나타냄.
    |: 둘 중 하나를 선택하여 매치됨.

  • 반복 (Repetition):
    *: 0회 이상 반복.
    +: 1회 이상 반복.
    ?: 0회 또는 1회 반복.
    {n}: n회 반복.
    {n,}: n회 이상 반복.
    {n,m}: n회부터 m회까지 반복.

  • 그룹화 (Grouping):
    (): 그룹을 지정하여 매치됨. 그룹화하면 그룹 내의 패턴을 하나의 단위로 취급할 수 있음.

  • 문자열 (Anchors):
    \b: 단어 경계를 나타냄.
    \B: 단어 경계가 아님.

  • 사전 정의된 문자 클래스 (Predefined Character Classes):
    \d: 숫자와 매치됨. [0-9]와 동일.
    \D: 숫자가 아닌 것과 매치됨. [^0-9]와 동일.
    \w: 문자, 숫자, 밑줄()과 매치됨. [a-zA-Z0-9]와 동일.
    \W: 문자, 숫자, 밑줄이 아닌 것과 매치됨. [^a-zA-Z0-9_]와 동일.
    \s: 공백 문자와 매치됨.
    \S: 공백 문자가 아닌 것과 매치됨.

예를 들어, \d{4}|\d{6}는 4자리 혹은 6자리 숫자 형식과 매치되는 정규식이다.

"\d"는 숫자에 매치되나 "\ \d"는 문자열에서 "\d"에 매치된다. 실제로 숫자 자체를 검사하려면 "\d"로 사용한다.

profile
java 개발자

0개의 댓글