티스토리 뷰

Lesson 1: An Introduction, and the ABCs | RegexOne

정규 표현식은 코드, 로그 파일 등에서 정보를 추출하는데 매우 유용하다. 실용적인 예제 위주의 학습을 해보자.

첫 번째로 인지해야할 사항은 모든 것은 하나의 문자라는 것이다.

숫자도 문자다. \d 문자는 0~9 중 하나의 숫자와 매칭된다. \ 문자 뒤에 오는 문자는 메타문자다. 그 문자 그대로가 아니라 별도의 특수한 기능을 한다.

조커 카드처럼 만능의 문자가 있는데, 정규 표현식에서는 . 이다. 문자, 숫자, 띄어쓰기, 모든 것과 매칭된다. 온점을 나타내려면 \. 을 사용한다.

특정 문자들과 매칭되게 하려면 대괄호 []를 이용한다. [abc] 는 a, b, c 중에서 하나의 문자와 매칭된다.

반대로 특정 문자들을 제외하고 매칭되게 하려면 대괄호 [] 와 모자 ^ 를 사용한다. [^abc] 는 a, b, c를 제외한 하나의 문자와 매칭된다.

연속된 문자들은 대시 - 를 이용해서 따로 조건을 만들 수 있다. [0-6] 는 0부터 6까지 숫자와 매칭되고, [^n-p] 는 n부터 p를 제외한 문자와 매칭된다. 알파벳과 숫자를 나타내는 메타문자 \w 를 대시 기호로 표현하면 [A-Za-z0-9] 가 된다. 대소문자 구분을 주의하자.

반복회수를 지정할 때는 중괄호 {} 를 이용한다. a{3} 은 문자 a 3개를 나타내고, .{2,6} 은 아무 문자 2~6개를 나타낸다.

정규 표현식에서 가장 강력한 개념 중 하나는 임의의 개수의 문자를 찾는 것이다. 별 * 은 0개 이상을 나타내고, 더하기 + 는 1개 이상을 의미한다.

있거나 없거나 관계 없는 경우는 물음표 ? 를 이용한다. ab?c 는 abc 또는 abc와 매칭된다.

공백문자는 띄어쓰기 , 탭 \t , 줄바꿈 \n , 캐리지 리턴 \r 을 사용하고, 이 전부를 \s 로 나타낼 수도 있다.

한 줄 안에서 시작과 끝을 찾는 기호는 각각 모자 ^ 와 달러 $ 이다.

소괄호 () 를 이용해 문자들의 그룹을 표현식으로 묶을 수도 있다. 또한 그룹 안에 그룹을 포함할 수도 있다.

| 문자를 이용해 논리적 OR 연산을 처리할 수 있다. I love (cats|dogs) 는 I love cats 또는 I love dogs와만 매칭된다.

기타 특수 문자들은 다음과 같다:

  • \d : 숫자
  • \s : 모든 공백 기호
  • \w : 알파벳과 숫자
  • \D : 숫자를 제외한 문자
  • \S : 띄어쓰기를 제외한 문자
  • \W : 알파벳을 제외한 문자 (구두점과 같은)
  • \b : 단어와 단어 사이 경계까지 매칭 (\w+\b 와 같이 사용)

Back referencing 은 그룹과 얼마나 매칭되었는지 조건을 걸 수 있다. \0, \1, \2, ... .

추가로 읽어볼 문서:

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday