정규표현식(Regex)

서린·2024년 5월 1일
0

greenstudy

목록 보기
40/44
post-thumbnail

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

  • 문자열을 검색하거나 변경하기 위해 사용되는 패턴을 나타내는 문자열
  • 일반적으로 정규식(Regex) 로 줄여 부른다.
  • 복잡한 패턴의 문자열 검증 절차를 간단하게 표현 가능
  • 대부분의 언어에서 정규식 문법이 비슷하다.
  • 여러 기호를 조합하여 사용하기에 가독성이 좋지 않다.

정규 표현식(Regular Expression) 플래그

Flag설명
g문자열 내의 모든 패턴 검색
i대소문자를 구별하지 않고 검색
m문자열의 행이 바뀌더라도 계속 검색
s. 이 개행문자(\n) 도 포함하여 검색
u유니코드 전체 지원
y특정 위치에서 검색 진행 모드 활성화

정규 표현식(Regular Expression) 기호

특정 문자 및 숫자 매칭 패턴

패턴설명
a-z영어 소문자 (-로 범위 지정)
A-Z영어 대문자 (-로 범위 지정)
ㄱ-ㅎ가-힣한글 문자 (-로 범위 지정)
0-9숫자 (-로 범위 지정)
.모든 문자열(영어, 한글, 숫자, 특수기호, 공백 등), 단
\d숫자
\D숫자 이외
\w영어 알파뱃과 숫자 및 인것, [A-Za-z0-9]와 동일
\W\w 이외
\s공백
\S공백 이외
\특수기호특수기호, 예) * ! \? … 등
\b63개 문자(영문 대소문자 52개 + 숫자 10개 + _(underscore))가 아닌 나머지 문자에 일치하는 경계(boundary)
\B63개 문자에 일치하는 경계
\x16진수 문자에 일치/\x61/는 a에 일치
\08진수 문자에 일치/\141/은 a에 일치
\u유니코드(Unicode) 문자에 일치/\u0061/는 a에 일치
\c제어(Control) 문자에 일치
\f폼 피드, (FF, U+000C) 문자에 일치
\n줄 바꿈, (LF, U+000A) 문자에 일치
\r캐리지 리턴, (CR, U+000D) 문자에 일치
\t탭, (U+0009) 문자에 일치

검색 기준 패턴

패턴설명
예) ab
[]대괄호 안의 문자들 중 하나
예) /[abc]/ : "a""b"
[^문자]대괄호 안의 문자를 제외한 문자
예) [^lgEn] "l" "g" "E" "N" 4개 문자를 제외
^문자열특정 문자열로 시작
예) /^www/
문자열$특정 문자열로 끝
예) /com$/

반복 패턴

패턴설명
?없거나 or 최대 한개만
예) /apple?/
*없거나 or 있거나 (여러개)
예) /apple*/
+최소 한개 or 여러개
예) /apple+/
*?없거나, 있거나 and 없거나, 최대한개 : 없음
{0} 과 동일
+?최소한개, 있거나 and 없거나, 최대한개 : 한개
{1}과 동일
{n}n개
예) ^[a-z]{2}$
{min,}최소 Min개 이상
예) ^[a-z]{1,}$
{min, max}최소 Min개 이상, 최대 Max개 이하
예) ^[a-z]{2,5}$

그룹 패턴

패턴설명
()그룹화 및 캡쳐
(?:패턴)그룹화
(?=)앞쪽 일치
예) /ab(?=c)/
(?!)부정 앞쪽 일치
예) /ab(?!c)/
(?≤)뒤쪽 일치
예) /(?<=ab)c/
(?<!)부정 뒤쪽 일치
예) /(?<!ab)c/

정규표현식(Regular Expression) 샘플

상황샘플
숫자만 허용/^[0-9]+$/
한글만 허용/^[ㄱ-ㅎ가-힣]+$/
휴대전화 번호/^010-[0-9]{4}-[0-9]{4}$/
아이디^[a-z][a-z0-9]{4,10}$ 영어 소문자로 시작하는 영어 소문자 및 숫자로 이루어진 4~10글자
이메일/^0-9a-zA-Z[a-zA-Z0-9-_.]{3,63}@0-9a-zA-Z[a-zA-Z0-9-_.]{3,63}.[a-zA-Z]{2,3}$/
  1. 로컬 파트
    영어 대소문자 및 숫자로 시작
    영어 대소문자 및 숫자와 특수문자(- , _ , .)만 허용
    특수는자는 연속으로 올 수 없음
    글자수 4~64 제한
  2. 도메인 파트
    2-1. 도메인명
    영어 대소문자 및 숫자로 시작
    영어 대소문자 및 숫자와 특수문자(- , _ , .)만 허용
    특수는자는 연속으로 올 수 없음
    글자수 4~64 제한
    2-2 최상위 도메인
    영어 대소문자로 시작
    영어 대소문자만 허용
    글자수 2~3 제한
  3. 기타
    로컬 파트와 도메인파트 사이에 @필수
    도메인명과 최상위 도메인 사이에 . 필수 |
profile
개발 일기 ( •̀ ω •́ )✧

0개의 댓글

관련 채용 정보