아스키(ASCII) 코드와 POSIX 문자 클래스
바로, 앞의 포스팅에서 문자 클래스에 16진수 코드값을 넣어 아스키(ASCII) 코드의 해당 문자를 나타낼 수 있음을 언급했고 동시에 POSIX 문자 클래스를 이용하면 16진수 코드값 없이 이를 쓸 수 있다고 했다. 이를 확인해 보자.
아스키(ASCII) 코드와 POSIX 문자 클래스의 관계를 요약하면 다음 표와 같다.
10진수 | 16진수 | 문자 종류 | POSIX 문자 클래스 |
0~31번 | 0x00~0x1F | 제어문자 | [:ascii:], [:cntrl:] |
32번 | 0x20 | 공백(Space) | [:ascii:], [:print:], [:space:], [:blank:] |
33~47번 | 0x21~0x2F | 구문기호 및 심볼 | [:ascii:], [:graph:], [:print:], [:punct:] |
48~57번 | 0x30~0x39 | 숫자(0~9) | [:ascii:], [:graph:], [:print:], [:alnum:], [:digit:] |
58~64번 | 0x3A~0x40 | 구문기호 및 심볼 | [:ascii:], [:graph:], [:print:], [:punct:] |
65~90번 | 0x41~0x5A | 대문자( A~Z) | [:ascii:], [:graph:], [:print:], [:alnum:], [:alpha:], [:upper:] |
91~96번 | 0x5B~0x60 | 구문기호 및 심볼 | [:ascii:], [:graph:], [:print:], [:punct:] |
97~122번 | 0x61~0x7A | 소문자( a~z) | [:ascii:], [:graph:], [:print:], [:alnum:], [:alpha:], [:lower:] |
123~126번 | 0x7B~0x7E | 구문기호 및 심볼 | [:ascii:], [:graph:], [:print:], [:punct:] |
127번 | 0x7F | 제어문자 | [:ascii:], [:cntrl:] |
이 중 앞 서 다루지 않았던 [:ascii:], [:cntrl:], [:graph:], [:print:], [:punct:]의 5개의 POSIX 문자 클래스에 대해서 자세히 알아보자.
아스키(ASCII) 문자 전체
아스키(ASCII) 코드에 해당하는 문자 전체를 POSIX 문자 클래스로 나타낼 수 있다. 16진수로 0x00에서 0x7F까지 128개의 아스키 문자를 다음과 같이 나타낸다.
[:ascii:] → 아스키(ASCII) 코드에 해당하는 문자 전체, [\x00-\x7F]
제어 문자(Control characters)
아스키 문자 중에서 0x00~0x1F(0번부터 31번까지)와 0x7F(127번)의 아스키 문자는 제어 문자(Control characters)라고 부르고 다음처럼 POSIX 문자 클래스로 나타낼 수 있다.
[:cntrl:] → 제어 문자, [\x00-\x1F\x7F]
그 외 볼 수 있는(Visible) 문자
아스키 문자 중에서 제어 문자를 제외한 문자들은 알파벳 대소문자와 숫자 구문기호(?, ! 등), 공백으로 실제 화면에 나타나는 문자들이다. 이러한 문자들은 [:graph:], [:print:], [:punct:]의 3종류로 나눈다.
[:graph:]는 아스키(ASCII) 코드의 [\x21-\x7E]에 해당하는 문자로 제어 문자와 공백 문자를 제외한 눈으로 볼 수 있는 문자들이다.
[:graph:] → 보이는 문자, [\x21-\x7E], 제어 문자와 공백 문자 외의 문자
[:print:]는 아스키(ASCII) 코드의 [\x20-\x7E]에 해당하는 문자로 [:graph:]에 공백을 더한 문자들이다.
[:print:] → 보이는 문자와 공백, [\x20-\x7E], 제어 문자 외의 문자
[:punct:]는 아스키(ASCII) 코드에서 구문기호 및 심볼로 문자 클래스 [!"\#$%&'()*+,\-./:;<=>?@\[\\\]^_`{|}~]에 해당하는 문자들이다.
[:punct:] → 구문기호 및 심볼
아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다.
'Anki로 공부하기 > vi 또는 vim 익히기' 카테고리의 다른 글
039 vim의 정규표현식(12) 확장 정규 표현식 2 (0) | 2018.06.25 |
---|---|
038 vim의 정규표현식(11) 확장 정규 표현식 1 (0) | 2018.06.24 |
036 vim의 정규표현식(9) 아스키(ASCII) 코드와 문자 클래스 (0) | 2018.06.19 |
035 vim의 정규표현식(8) POSIX 문자 클래스 1 (0) | 2018.06.18 |
034 vim의 정규표현식(7) 몇 가지 예제들 (0) | 2018.06.17 |