Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

정규표현식/스터디/메타문자사용하기: Difference between revisions

From ZeroWiki
imported>beonit
No edit summary
imported>beonit
No edit summary
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장에서 모두 배웠고, 이 장에서는 특정 문자나 전체 집합 혹은 문자 클래스와 일치하는 메타 문자를 소개했다. 이렇게 메타 문자와 포직스 클래스는 정규 표현식 패턴을 단순하게 만든다.



Revision as of 16:51, 25 October 2010

[[pagelist(^정규표현식/*)]]

몇 번 일치하는가 - 상호

구간 지정하기 - 승한

과하게 일치하는 상황 방지하기 - 준석

정리해보자 - 준석