imported>beonit |
imported>beonit |
| Line 1: |
Line 1: |
| [[pagelist(^정규표현식/*)]] | | [[pagelist(^정규표현식/*)]] |
| __TOC__ | | __TOC__ |
| == 이스케이프 다시 살펴보기(상호) == | | == 몇 번 일치하는가 - 상호 == |
| == 공백문자 찾기(홍기) ==
| | == 구간 지정하기 - 승한 == |
| == 특정한 문자 형태와 일치 시키기(준석) == | | == 과하게 일치하는 상황 방지하기 - 준석 == |
| | | == 정리해보자 - 준석 == |
| 자주쓰는 문자 집합들은 특수한 메타 문자로 대신하여 찾기도 한다. 이런 메타 문자들을 문자 클래스(classes of characters)라고 부른다.
| |
| [0-9]
| |
| = {{{[0123456789]}}} 와 같은걸 알것이다. 이것을 {{{[[0-9]]}}} 보다 더 편한게 찾으려면 '\d'로 찾을수 있고 제외하고 찾기는 '\D'로 {{{[[^0-9]]}}}를 대신할수 있다. | |
| | |
| 위와 보면 깨달을수 있다시피 정규 표현 문법은 대소문자를 구별하며 소문자와 대문자를 서로 반대임을 뜻한다.
| |
| | |
| '\w'는 영문자와 숫자를 포함하며
| |
| '\W'는 영문자와 숫자를 제외한것을 찾는것이다.
| |
| | |
| 그것은 다음의 예문으로 본보기로 할것이다.
| |
| | |
| === 예문 ===
| |
| | |
| 11213
| |
| A1C2E3
| |
| 48075
| |
| 48237
| |
| M1B4F2
| |
| 90046
| |
| H1H2H2
| |
| -----
| |
| 정규 표현식
| |
| \w\d\w\d\w\d
| |
| -----
| |
| 11213
| |
| A1C2E3
| |
| 48075
| |
| 48237
| |
| M1B4F2
| |
| 90046
| |
| H1H2H2
| |
| ----------
| |
| | |
| 위의 예문에서는 정규표현식이 숫자로만이 이루어진것도 찾을수 있어야하지만 찾지 못하는걸 볼수있다.
| |
| | |
| 그 이유는 ... 책에 정확히 안 나왔다. 추후 찾아보겠다.
| |
| | |
| 이 예제 말고는
| |
| | |
| '\s' 모든 공백문자 '\S' 모든 공백문자를 제외
| |
| | |
| '\c' 는 모든 제어문자 '\C' 모든 제어문자를 제외
| |
| | |
| 16진수 표현 및 사용
| |
| | |
| '\x'를 붙여 10진수 10은 '\x0A'로 표현할수 있다. 이 문자를 사용한다면 '\n'과 기능이 같다
| |
| | |
| 8진수 표현 및 사용
| |
| | |
| '\0'을 붙여 사용한다. '\011'은 '\t'과 같고 그렇게 사용 할수있다.
| |
| | |
| * 이와 같은 기능을 사용하여 정규표현식을 더욱 간결하게 만들수 있을 것이다.
| |
| | |
| | |
| | |
| == 포직스 문자 분류 사용하기 == | |
| * 자바스크립트는 포직스 문자 클래스를 지원하지 않는다.
| |
| === 포직스 문자 분류표 ===
| |
| {| class="wikitable"
| |
| |-
| |
| | {{{[[:alnum:]]}}}
| |
| | {{{[[a-zA-Z0-9]]}}}
| |
| |-
| |
| | {{{[[:alpha:]]}}}
| |
| | {{{[[a-zA-Z]]}}}
| |
| |-
| |
| | {{{[[:blank:]]}}}
| |
| | 빈칸이나 {{{[[\t]]}}}와 같다.
| |
| |-
| |
| | {{{[[:cntrl:]]}}}
| |
| | 아스키 제어문자. 0-31, 127번
| |
| |-
| |
| | {{{[[:digit:]]}}}
| |
| | {{{[[0-9]]}}}
| |
| |-
| |
| | {{{[[:graph:]]}}}
| |
| | {{{[[:print:]]}}}와 동일하나 빈칸제외
| |
| |-
| |
| | {{{[[:lower:]]}}}
| |
| | {{{[a-z]}}}
| |
| |-
| |
| | {{{[[:print:]]}}}
| |
| | 출력가능한 모든 문자
| |
| |-
| |
| | {{{[[:punct:]]}}}
| |
| | {{{[[:alnum:]]}}}이나 {{{[[:cntrl:]]}}}가 포함되지 않은 모든 문자
| |
| |-
| |
| | {{{[[:space:]]}}}
| |
| | 빈칸을 포함한 모든 공백문자 {{{[[\f\n\r\t\v]]}}}
| |
| |-
| |
| | {{{[[:upper:]]}}}
| |
| | {{{[[A-Z]]}}}
| |
| |-
| |
| | {{{[[:xdigit:]]}}}
| |
| | 모든 16진수 숫자 {{{[[a-fA-F0-9]]}}}와 같다
| |
| |}
| |
| === 예 ===
| |
| * HRGB 코드 값 찾기
| |
| **
| |
| #[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]
| |
| ** 주의할 점은 대괄호가 두번 들어간다. posix 표현은 [[:xdigit:]] 이기 때문에 문자집합을 정의하려면 대괄호를 한번 더 써줘야 한다.
| |
| == 정리해보자 == | |
| * 문자와 문자 집합으로 찾는 기본 내용은 2장과 3장에서 모두 배웠고, 이 장에서는 특정 문자나 전체 집합 혹은 문자 클래스와 일치하는 메타 문자를 소개했다. 이렇게 메타 문자와 포직스 클래스는 정규 표현식 패턴을 단순하게 만든다.
| |
|
| |
|