정규표현식(regular expression) 이란
- 정규 표현식(Regular Expression, RegEx, regex)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 정규 표현식은 많은 프로그래밍 언어와 유틸리티에서 텍스트 처리를 위해 사용된다.
- 정규 표현식은 특수 문자와 문자열의 조합으로 이루어져 있다. 특수 문자는 정규 표현식에서 특별한 의미를 가지며, 문자열은 정규 표현식에서 매칭해야 하는 문자열이다.
- 정규 표현식은 텍스트를 검색, 치환, 추출하는 데 사용할 수 있다. 예를 들어, 정규 표현식을 사용하여 특정 문자열이 포함된 텍스트를 검색하거나, 특정 문자열을 다른 문자열로 치환하거나, 특정 문자열을 추출할 수 있다.
- 정규 표현식은 사용하기 어려울 수 있지만, 텍스트를 처리하는 데 매우 강력한 도구가 될 수 있다.
메타문자의 정의 및 종류
메타문자는 문자를 표현하는 것 이외에 특정한 규칙을 표현하기 위한 문자들로 자주사용하는 문자는 다음과 같다.
^x : 입력(줄) 시작 + x x$ : x + 입력(줄) 끝 \Ax : 문자열의 시작(내부 줄바꿈 제외) + x x\z : x + 문자열의 끝(내부 줄바꿈 제외) . : 개행 문자를 제외한 임의의 문자 1개 x{n} : x가 n번 반복 x{n,} : x가 n번 이상 반복 x{n,m} : x가 n번 이상 m번 이하 반복 x? : 문자 x 또는 문자 없음(x{0,1}) x+ : x가 1번 이상 반복(x{1,}) x* : x 가 0번 이상 반복(x{0,}) x|y : x 또는 y (x) : ()안의 내용을 캡쳐하여 그룹화 (레퍼런스 캡쳐 관련하여 Ref.2를 참조바람) (x)(y) : ()안의 내용을 캡처하며 앞에서부터 그룹 번호를 부여함. (?:y) : 캡쳐하지 않는 그룹을 생성 \n : (n은 1에서 9까지의 정수 [1-9])정규식 안 n번 괄호(그룹)의 최근 일치 부분(역참조)과 같음. x(?=y) : y가 뒤 따라오는 x에만 일치 x(?!y) : y가 뒤 따라오지 않는 x에만 일치 [...] : Bracket expression이며 가능한 문자셋을 표시한다.(자세한 내용에 대해서는 후술) \A : 문자열의 시작(내부 줄바꿈 제외) \z : 문자열의 끝(내부 줄바꿈 제외) \w : '_'를 포함한 알파벳 또는 숫자 [A-Za-z0-9_] \W : 비 단어문자 [^A-Za-z0-9_] \b : 길이가 0인 단어의 경계를 의미 즉, 매칭되는 결과물에는 경계가 포함되지 않는다(^\w | \w$ | \W\w | \w\W) (Ref.3) \B : 단어의 경계가 아닌 것. \d : 숫자 문자 [0-9] \D : 숫자 문자가 아닌 것 [^0-9] \xhh : hh(hex문자 2개) \uhhhh : hhhh(hex문자 4개) \f : 폼 피드(U+000C) \n : 줄 바꿈(U+000A) \r : 캐리지 리턴(U+000D) \t : 탭(U+0009) \v : 수직 탭(U+000B) \s : 스페이스, 탭, 폼 피드, 줄 바꿈 문자를 포함한 하나의 공백문자 [ \f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000] \S : \s가 아닌 모든 문자 \0 : 널 문자(U+0000) \c : 컨트롤 문자(e.g. \cM 은 control-M(U+000D)와 일치함) |
문법 테스트 사이트 소개 및 사용기
정규표현식을 눈으로 검증하긴 쉽지 않다. 온라인상에서 쉽게 검증할 수 있는 사이트는 여러가지가 있지만 https://regexr.com/ 가 가장 좋은것 같다.
해당 사이트에서 사용한 사례를 소개하면..
- A-Z로 시작하는 문자 검색하는 정규표현식으로 전체문장에서 하이라이트로 표기해주고, 정규표현식 작성시 도움이 되는 문법도 왼쪽에 표기되어 보기 편했다.
- 왼쪽메뉴에있는 문법샘플을 테스트해보고 싶을경우 화살표를 누르면 아래와 같이 복사가 되어 쉽게 테스트 가능함
'리뷰 및 팁' 카테고리의 다른 글
[Chrome] 확장프로그램 오프라인에서 사용하는 방법 (0) | 2020.04.13 |
---|
댓글