PoC(Proof of Concept) 담당자로 프로젝트 수행 시 검토했던 사항을 정리하였습니다.

 

1. 정규표현식 이란?

특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어 입니다.

텍스트의 복잡한 패턴을 정의하고 처리하는 데 유용하며, 다양한 프로그래밍 언어와 도구에서 사용됩니다.

데이터 처리, 유효성 검사, 텍스트 마이닝 등의 작업에서 많은 도움이 됩니다.

 

2. 정규표현식 기본 문법

2.1) 문자 리터럴 (Literal Characters)

- 문자 자체를 의미

  • a: 문자 ‘a’와 일치
  • abc: 문자열 “abc”와 정확히 일치

2.2) 메타 문자(Metacharacters)

- 다른 언어에서 연산자나 예약어로 쓰이는 문자

  • .: 모든 문자와 일치(개행 문자를 제외한 모든 문자), 와일드카드
  • ^: 문자열의 시작
  • $: 문자열의 끝
  • *: 0회 이상 반복
  • +: 1회 이상 반복
  • ?: 0회 또는 1회 등장
  • {n}: n회 반복
  • {n,}: n회 이상 반복
  • {n,m}: n회 이상, m회 이하 반복
  • []: 문자 클래스
  • (abc): 그룹화, 소괄호()를 사용하여 그룹을 생성하고 캡처
  • |: OR 연산자. 여러 패턴 중 하나와 일치

 

2.3)  문자 클래스 (Character Classes)

- 대괄호[] 를 사용하여 특정 문자 집합을 정의

  • [abc]: ‘a’, ‘b’, 또는 ‘c’ 중 하나와 일치
  • [a-z]: 소문자 알파벳 중 하나와 일치
  • [0-9]: 숫자와 일치

2.4) 특수 문자 (Special Sequences)

- 역슬래시와 함께 사용

  • \d: 숫자(0-9)
  • \D: 숫자가 아닌 문자와 일치. [^0-9]
  • \w: 단어 문자(알파벳, 숫자, 밑줄)와 일치. [a-zA-Z0-9_]
  • \W: 단어 문자가 아닌 문자와 일치. [^a-zA-Z0-9_]
  • \s: 공백 문자(스페이스, 탭, 개행 등)와 일치
  • \S: 공백 문자가 아닌 문자와 일치

2.5) 그룹화(Grouping) 및 캡처 

- 소괄호 ()를 사용하여 그룹을 생성하고 캡처

  • (abc) : abc와 일치하며, 캡처 그룹 1로 저장
  • (?:abc) : abc와 일치하지만 캡처하지 않습니다.

2.6) 이스케이프 문자 (Escape Characters)

- 특수 문자를 일반 문자로 인식

  • \: 뒤따르는 문자를 이스케이프하여 특수 문자의 의미를 제거

 

3. 정규표현식  예제

학습 사이트에 정리되어 있는 예제를 정리하였습니다.

 

TYPE STRING EXPRESSION RESULT
문자열 전체 추출 abcdefg
abcde
abc
.+ abcdefg
abcde
abc
숫자(0~9)만 abc123xyz
define "123”
var g = 123;
\d.. 123
123
123
문자만 abc123xyz \D.. abc, xyz
(.)포함 문자열 cat.
abc1
\D..\. cat.
특정 문자 일치 can, man, fan
dan, ran, pan
[cmf]an can, man, fan
특정 문자 제외 hog, dog
bog
[^b]og hog, dog
특정문자 구간 일치 Ana, Bob, Cpc
aax, bby, ccz
[A-C].. Ana, Bob, Cpc
문자열 길이 체크 wakkeup, wakkkeeup
wakeup
wa.{3,5}up wakkeup, wakkkeeup
공백 포함 1. abc
2.abc
[\d].\s.+ 1. abc
공백 제외 3. def
4.def
[\d].\S.+ 4.def
파일명 file_record.pdf
file_202408.pdf
file_script.xml
(file(.+))\.pdf file_record
file_202408
캘린더 유형 Aug 2024

(.+?(\d+)) Aug 2024
숫자, 문자 조합 1280x720
1920x1600
((\d{4})x(\d{4})) 1920x1600
특정 문자열 일치 I love cats
I love eats
I love dogs
I love bogs
(.+(cats|dogs) I love cats
I love dogs

 

 

읽어주셔서 감사합니다.

 

레퍼런스
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기