정규표현식

Vincent·2023년 3월 22일
0

개발에서의 사용

  • email,주민번호, 생년월일등의 형식 검증
  • 데이터 전처리 작업
  • 프로젝트 리팩토링 작업
  • DataBase 검색, 치환 작업

정규 표현식 온라인 테스트 도구

https://regexr.com

문자 하나 찾기

  • 일반적인 문자 그대로 기재
  • '.'와 같은 메타 문자를 검색하려면 \로 이스케이프
    • ex) /\ ./g

문자 집합으로 찾기

  • 대괄호([])를 사용하여 문자 집합 표현
  • []집합에 속한 문자 가운데 하나가 일치
  • [] 내에 '-'은 연속 요소를 표현 [1-5]->[12345]
  • 캐럿('^')문자는 집합 안에 있는 문자나 범위를 모두 제외
    • /[sp]a[0-9]\ ./g

반복 찾기

  • 파워풀한 정규 표현 패턴의 능력
  • '+' : 하나 이상 일치
  • '*' : 없거나 하나 이상 일치
  • '?' : 없거나 하나 일치
  • 중괄호 '{}' 내에 반복 횟수 기재 {3} : 3번
  • 게으른 수량자로 문자를 최소로 일치

위치 찾기

  • 텍스트 영역 내 특정 위치에서 검색 희망
  • '\b' : 단어 경계
  • '^ ': 문자열 경계의 시작
  • '$ : 문자열 경계의 끝

하위 표현식

  • 큰 표현식 안에 속한 일부 표현식을 한 항목으로 다루도록 묶음
  • '()' : 괄호로 묶음 기능
  • >{2,} vs (>){2,}
  • 파워풀한 중첩된 하위 표현식

하위표현식 - 역참조

  • 하위 표현식으로 매칭된 타겟을 참조

  • 일치한 부분을 반복해 찾거나 치환에 사용

  • 텍스트를 검색하고 치환하는데 매우 유용

  • 'There is a ball on on the table' - 실수로 중복된 전치사?

  • /(\w+)\1/g

전방 탐색

  • 일치 영역을 발견해도 그 값을 반환하지 않는 패턴

  • 실제로는 하위 표현식이며 같은 형식으로 작성

  • (?=일치할 텍스트)

  • http://project.ssafy.com
    ftp://pds.ssafy.com
    https://lab.ssafy.com
  • /.+(?=:)/g         :앞 탐색

후방 탐색

  • 전방 탐색과 동일한 개념으로 방향만 역방향

  • (?<=일치할 텍스트)

  • /(?<=\/\/).+/g     //뒤 탐색

전후방 탐색 동시 사용

<head>
	<title>SSAFY GIT</title>
</head>
/(/<=<title).*(?=<\/title)/g

역참조 조건 사용

  • 정규 표현식 조건은 물음표(?)를 사용해 정의

  • 역참조 조건은 이전 하위 표현식이 검색에 성공했을 경우에 한하여 다시 해당 표현식을 검사

  • (?(역참조)true|false)

  • (02)2256-3112
    /(\()?\d{2,3}(?(1)\)|-)\d{3,4}-\d{4}/g
profile
Frontend & Artificial Intelligence

0개의 댓글