- 정규표현식
- 정규표현식/templete
- 정규표현식/소프트웨어
- 정규표현식/스터디/메타문자사용하기
- 정규표현식/스터디/메타문자사용하기/예제
- 정규표현식/스터디/문자집합으로찾기
- 정규표현식/스터디/문자하나찾기
- 정규표현식/스터디/반복찾기/예제
- 정규표현식/스터디/예제문제/이승한
1. 이스케이프 다시 살펴보기(상호) ¶
정규표현식을 이용하여 메타문자 그 자체를 찾기 위해서는 이스케이프 문자를 사용하면 된다.
[ 는 \[
] 는 \]
\ 는 \\
[ 는 \[
] 는 \]
- 배열을 검색하기 위해 활용할 수 있다.
\ 는 \\
- 윈도우 시스템에서 폴더의 구분을 역슬래시(\)로 하는 반면에 리눅스 시스템은 슬래시(/)를 사용한다. 따라서 이것을 변경하기 위해 사용할 수 있다.
2. 공백문자 찾기(홍기) ¶
메타문자는 일반적으로 두 가지 범주로 나뉜다.
\b 백스페이스
\f 페이지 넘김(form feed)
\n 줄바꿈
\r 캐리지 리턴
\t 탭
\v 수직 탭
- 텍스트(ex : .)
- 정규 표현식 문법의 일부로 쓰는 문자(ex : [])
\b 백스페이스
\f 페이지 넘김(form feed)
\n 줄바꿈
\r 캐리지 리턴
\t 탭
\v 수직 탭
3. 특정한 문자 형태와 일치 시키기(준석) ¶
자주쓰는 문자 집합들은 특수한 메타 문자로 대신하여 찾기도 한다. 이런 메타 문자들을 문자 클래스(classes of characters)라고 부른다.
[0-9]
= [0123456789]
와 같은걸 알것이다. 이것을 [0-9]
보다 더 편한게 찾으려면 '\d'로 찾을수 있고 제외하고 찾기는 '\D'로 [^0-9]
를 대신할수 있다. 위와 보면 깨달을수 있다시피 정규 표현 문법은 대소문자를 구별하며 소문자와 대문자를 서로 반대임을 뜻한다.
'\w'는 영문자와 숫자를 포함하며
'\W'는 영문자와 숫자를 제외한것을 찾는것이다.
'\W'는 영문자와 숫자를 제외한것을 찾는것이다.
그것은 다음의 예문으로 본보기로 할것이다.
3.1. 예문 ¶
정규 표현식
\w\d\w\d\w\d
\w\d\w\d\w\d
11213
48237
A1C2E348075
48237
M1B4F290046
H1H2H2
위의 예문에서는 정규표현식이 숫자로만이 이루어진것도 찾을수 있어야하지만 찾지 못하는걸 볼수있다.
그 이유는 ... 책에 정확히 안 나왔다. 추후 찾아보겠다.
이 예제 말고는
'\s' 모든 공백문자 '\S' 모든 공백문자를 제외
'\c' 는 모든 제어문자 '\C' 모든 제어문자를 제외
16진수 표현 및 사용
'\x'를 붙여 10진수 10은 '\x0A'로 표현할수 있다. 이 문자를 사용한다면 '\n'과 기능이 같다
8진수 표현 및 사용
'\0'을 붙여 사용한다. '\011'은 '\t'과 같고 그렇게 사용 할수있다.
* 이와 같은 기능을 사용하여 정규표현식을 더욱 간결하게 만들수 있을 것이다.
4.1. 포직스 문자 분류표 ¶
[: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] 와 같다 |