[[pagelist(^정규표현식/*)]] [[tableofcontents]] == 이스케이프 다시 살펴보기(상호) == 정규표현식을 이용하여 메타문자 그 자체를 찾기 위해서는 이스케이프 문자를 사용하면 된다. [ 는 \[ ] 는 \] * 배열을 검색하기 위해 활용할 수 있다. . 는 \. \ 는 \\ * 윈도우 시스템에서 폴더의 구분을 역슬래시(\)로 하는 반면에 리눅스 시스템은 슬래시(/)를 사용한다. 따라서 이것을 변경하기 위해 사용할 수 있다. 등등........ == 공백문자 찾기(홍기) == 메타문자는 일반적으로 두 가지 범주로 나뉜다. * 텍스트(ex : .) * 정규 표현식 문법의 일부로 쓰는 문자(ex : []) 정규표현식 검사를 할때 공백문자를 검색해야할 경우도 있다. 공백문자는 다음과 같이 나타낼 수 있다. [\b] 백스페이스 \f 페이지 넘김(form feed) \n 줄바꿈 \r 캐리지 리턴 \t 탭 \v 수직 탭 == 특정한 문자 형태와 일치 시키기(준석) == 자주쓰는 문자 집합들은 특수한 메타 문자로 대신하여 찾기도 한다. 이런 메타 문자들을 문자 클래스(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'과 같고 그렇게 사용 할수있다. * 이와 같은 기능을 사용하여 정규표현식을 더욱 간결하게 만들수 있을 것이다. == 포직스 문자 분류 사용하기 == * 자바스크립트는 포직스 문자 클래스를 지원하지 않는다. === 포직스 문자 분류표 === ||{{{[: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장에서 모두 배웠고, 이 장에서는 특정 문자나 전체 집합 혹은 문자 클래스와 일치하는 메타 문자를 소개했다. 이렇게 메타 문자와 포직스 클래스는 정규 표현식 패턴을 단순하게 만든다.