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 |
읽어주셔서 감사합니다.
레퍼런스
반응형
최근댓글