개발기초

정규 표현식에 대해서

Veams 2023. 4. 25.

정규 표현식(Regular Expression)은 문자열 처리 작업에 활용됩니다. 다시 말해 문자열의 패턴을 나타내는 문자열로, 특정한 규칙을 따르는 문자열을 검색, 추출, 치환 등의 작업을 쉽게 처리할 수 있도록 도와줍니다. 정규 표현식은 복잡한 문자열 검색 및 조작 작업에 굉장히 유용한 도구로, 다양한 프로그래밍 언어와 유틸리티에서 지원합니다.

 

활용 예시

1. 이메일 주소 유효성 검사 : 사용자가 입력한 이메일 주소가 올바른 형식인지 확인하는데 사용

2. 비밀번호 유효성 검사 : 비밀번호가 특정 요구 사항을 충족하는지에 확인하는데 사용

3. URL 추출 : 웹페이지 내용에서 URL을 추출하는데 정규 표현식을 사용

4. 로그 분석 : 서버 로그에서 특정 패턴을 검색하거나 필요한 정보를 추출하는데 사용

5. 코드 리팩토링 : 개발자는 코드에서 특정 패턴을 찾아 변경하거나 제거하는 데 정규 표현식을 사용

6. 텍스트 편집기 및 IDE 에서의 검색 및 치환 : 대부분의 텍스트 편집기와 IDE에서는 정규 표현식을 사용하여 복잡한 문자열 패턴을 찾고 치환할 수 있는 기능을 제공

 

정규 표현식의 구성

정규 표현식은 크게 3가지 요소로 구성됩니다.

  1. 정규 표현식이라고 표현하는 슬래시(/)
  2. 찾아낼 패턴
  3. 찾을 때 옵션을 줄 수 있는 flag

 

패턴 정의

정규 표현식은 다음과 같은 주요 메타문자와 구조를 사용합니다

  1. 리터럴 문자 (Literal Characters): 검색하려는 문자 그대로를 나타냅니다. 예를 들어, 'abc'는 'abc'라는 문자열을 검색합니다.
  2. 메타문자 (Metacharacters): 특별한 의미를 가지는 문자로, 문자열의 특정 위치, 특정 문자 클래스 등을 표현합니다. 예를 들어, '^', '$', '.', '*', '+', '?', '{', '}', '(', ')', '[', ']', '|' 등이 있습니다.
  3. 문자 클래스 (Character Classes): 대괄호([])로 묶인 문자 집합으로, 해당 위치에서 이 집합에 포함된 문자 중 하나와 일치합니다. 예를 들어, [abc]는 'a', 'b', 'c' 중 하나와 일치합니다.
  4. 수량자 (Quantifiers): 문자나 문자 클래스의 반복 횟수를 지정합니다. '*', '+', '?', '{n}', '{n,}', '{n,m}' 등이 있습니다.
  5. 그룹화 (Grouping): 소괄호(())로 문자열 패턴을 그룹화하여, 해당 그룹에 대해 수량자나 대체(Alternation) 기능을 적용할 수 있습니다.
  6. 대체 (Alternation): 파이프 기호('|')로 구분된 두 패턴 중 하나와 일치하는 경우를 찾습니다. 예를 들어, 'a|b'는 'a' 또는 'b'와 일치합니다.
  7. 탐욕적(Greedy) 및 비탐욕적(Lazy) 수량자: 수량자는 기본적으로 탐욕적이며, 최대한 많은 문자와 일치하려고 합니다. 비탐욕적 수량자는 최소한의 문자와 일치하려고 하며, 탐욕적 수량자 뒤에 '?'를 붙여 사용할 수 있습니다.

 

 

https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-%EC%A0%95%EA%B7%9C%EC%8B%9D-RegExp-%EB%88%84%EA%B5%AC%EB%82%98-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC

 

📚 JavaScript 정규 표현식 문법 총정리 + 응용 예제

정규 표현식(Regular Expression) 정규식(Regular Expression)은 문자열에서 특정 내용을 찾거나 대체 또는 발췌하는데 사용된다. 대표적으로 입력칸에 전화번호나 이메일을 입력하라고 했을때 옳지 않은

inpa.tistory.com

https://blog.walkinpcm.com/15

 

정규표현식(Regular Expression, regex)

주어진 문자열에서 특정 규칙을 만족하는 모든 문자열을 찾아야하는 경우에는 자연스럽게 정규표현식을 떠올리게 됩니다. 그런데, 생각보다 정규표현식의 규칙을 매번 헷갈려해서 결국 원하는

blog.walkinpcm.com

 

댓글