[reg] Reference
목차

(자주쓰는)언어에서 정규표현식 활용하기 !

1. 자바스크립트

2. 파이썬

정규표현식과 한글 그리고 유니코드

한글 일치시키기

유니코드 일치시키기

(자주쓰는)언어에서 정규표현식 활용하기 !

🐜 기본 정규표현식 문법이 여러구현에서 대부분 동일하다고 해도 정규표현식을 사용하는 방식은 다름
정규표현식을 지원하는 언어와 애플리케이션에는 자신만의 호출방법이 있고, 사소한 차이점이 존재한다.

1. 자바스크립트

📌 자바스크립트에서는 String과 RegEx 객체를 다음 메서드로 처리하여 정규표현식을 구현

* RegEx 객체의 exec 메서드 - 일치하는 부분을 찾는다.
* String 객체의 match 메서드 - 문자열을 찾는다.
* String 객체의 replace 에서드 - 치환 명령을 수행한다.
* String 객체의 search 메서드 - 문자열에서 일치하는 부분이 있는지 검사한다.
* String 객체의 split 메서드 - 문자열 하나를 여러 개로 나눈다.
* RegEx 객체의 test 메서드 - 주어진 문자열이 일치하는지 검사한다.

❗️ 다음과 같은 주의 사항이 있다.

  • 자바스크립트는 플래그(fleg)를 사용해 전역 대소문자를 구별해 검색한다.(g로 전역을 설정, i는 대소문자를 구별하지 않고 일치시킴 -> 두개를 합쳐서 gi로 표시함)

  • 다음과 같은 변경자가 추가됨

변경자/지시자설명
m다중행 문자열을 지원한다.
s단일행 문자열을 지원한다.
x정규표현식 내 포함된 공백을 무시한다.
  • 역참조를 사용시

    • $'는 일치하는 문자열 앞에 있는 문자열을 모두 반환한다.
    • $`는 일치하는 문자열 뒤에 오는 문자열을 모두 반환한다.
    • $+는 마지막 하위 표현식과 일치한 내용을 반환한다.
    • $&는 일치한 문자열을 모두 반환한다.
  • 자바스크립트에는 RegExp라는 전역객체가 있어, 정규 표현식을 실행한 다음에 관련된 정보를 얻어올 수 있다.

  • 포직스(POSIX) 문자 클래스는 지원하지 않는다.

  • \A 와 \Z 는 지원하지 않는다.

2. 파이썬

정규표현식과 한글 그리고 유니코드

한글 일치시키기

지금까지는 예제와 표현식이 모두 영어로만 되어있었다. 그렇다면, 정규표현식에서 한글을 사용하려면 어떻게 해야할까 ?

짚고 넘어가야할 부분

📌 한글은 \w와 일치하지 않는다.(\w : [A-Za-z0-9])

에시 비교

- 예시
국어:수
영어:수
수학:수
미술:양
체육:미
정규식
(?<=[^가-힇])(수|우|미|양|가)(?=[^가-힇])
결과
국어:
영어:
수학:
미술:
체육:

📌 [^가-힇] 패턴을 살펴보면 는 한글 문자 집합에서 가장 첫번째 문자이고, 은 가장 마지막 문자이다.([A-Z]패턴과 마찬가지로 부터 문자 사이에 있는 모든 문자를 나타냄. 즉, 모든 한글문자와 일치) 📌 그러므로 [^가-힇] 패턴은 한글이 아닌 문자와 모두 일치함

유니코드 일치시키기

- 유니코드에는 한글뿐만 아닌 다양한 언어와 기호가 포함되어 있음

🐜 정규 표현식으로 일치시키기 위해선 유니코드 번호(Unicode code point)를 사용하는 방법을 알아보자 !

- 유니코드는 문자마다 순서대로 번호를 할당한다. 이 번호(code point)를 직접 사용해 유니코드 문자와 일치시킬수 있다.

에시 비교

- 예시
Copyright © 2022 인사이트
정규식
\u00a9
결과
Copyright © 2022 인사이트

📌 문자에 할당된 번호 00a9를 통해 © 문자와 일치했다. ❗️ 파이썬에서는 해당 정규 표현 문자열 앞에 \u00a9 와 같이 u를 붙여 유니코드임을 나타내야한다

🔑 예제와 같은 형식의 유니코드 번호(Unicode code point)를 통한 정규표현식 일치는 자바, 자바스크립트, 닷넷, 파이썬만에서 지원.