본문으로 이동

미디어위키 1.45 안정화가 거의 끝났습니다. 다만 Flow 확장 기능 관련 이슈가 있어서 대체하는 작업을 수행할 계획입니다.

  1. 큰숲백과:청사진에서 위키 발전의 대략적인 방향성을 제시했습니다. 의견이 있으신 분은 큰숲백과토론:청사진에서 의견을 남겨주시면 좋겠습니다.
  2. 기능상의 오류로 지원하지 않고 있는 기능에 대해서는 큰숲백과토론:이슈 트래커에 요약했습니다. 참고하시기 바랍니다.
  3. 데이터베이스 덤프 받고싶으신 분은 큰숲백과 가입 후에 사용자토론:Bigforest에 의견 남겨주시면 ftp 주소, 계정, 비밀번호를 특수:EmailUser를 통해서 공개할 예정입니다.

작은숲:위키노트/정규 표현식

큰숲백과, 나무를 보지 말고 큰 숲을 보라.

정규 표현식(Regular expression, regexp, regex)은 어떤 문자열의 집합을 묘사하는 텍스트 스트링.

Meta Characters

  • |  : OR 연산자. 글자 모양 그대로의 | 문자와 일치시키려면 백슬래쉬를 사용하여 \| 라고 적거나 [|]처럼 괄호 안에 적으면 된다.
  • ^ : 행의 처음을 나타낸다. ^라는 글자 그대로와 일치시키려면 마찬가지로 백슬래쉬를 사용하여 \^라고 표기한다.
  • $ : 문자열의 끝 또는 개행 문자 바로 직전을 뜻한다. $라는 글자 그대로와 일치시키려면 \$ 또는 [$] 라고 표기한다.

Grouping

그룹은 메타 문자인 (와 )를 사용하여 만든다. (와 )는 수학 표현식과 비슷한 의미를 갖는다. 괄호 안에 들어있는 표현식을 그룹화한다. 그룹화한 내용과 *, +, ?, {m,n}와 같은 반복 연산자를 사용할 수 있다.

Character Class

클래스 오퍼레이터는 리스트 안에서만(예: [:digit:]) 효력을 발휘하고, 그냥 [:digit:]와 같이 사용하면 다른 의미를 가지게 된다.

  • [:alnum:] : 알파벳과 숫자.
  • [:alpha:] : 알파벳.
  • [:blank:] : 스페이스나 탭 (시스템에 의존적임).
  • [:cntrl:] : 아스키코드에서의 127 이상의 문자와 32 이하의 제어문자.(한글의 첫째 바이트가 127 이상이므로 제어문자로 취급됨)
  • [:digit:] : 숫자.
  • [:graph:] : 스페이스는 제외되고 나머지는 'print' 항목과 같음.
  • [:lower:] : 소문자.
  • [:print:] : 아스키코드에서 32에서 126까지의 찍을 수 있는 문자.
  • [:punct:] : 제어문자도 아니고 알파벳, 숫자도 아닌 문자.
  • [:space:] : 스페이스, 케리지 리턴, 뉴라인, 수직 탭, 폼피드.
  • [:upper:] : 대문자.
  • [:xdigit:] : 16진수, 0-9, a-f, A-F.

Lookahead Assertion

부정적 사전 확인

(?!...) 형태로 표현. 현재 위치에서 일단 ...에 적은 조건이 만족하지 않는지 사전 확인을 하고 만족하지 않아야만 다음으로 진행한다.

긍정적 사전 확인

(?=...) 와 같은 형식을 사용.

Backslash Sequence

  • \d : 모든 숫자와 일치한다; [0-9] 클래스에 해당한다.
  • \D : 숫자가 아닌 문자와 일치한다; [^0-9] 클래스에 해당한다.
  • \s : 공백문자와 일치한다; [ \t\n\r\f\v] 클래스에 해당한다.
  • \S : 공백문자가 아닌 것과 일치한다; [^ \t\n\r\f\v] 클래스에 해당한다.
  • \w : 숫자 또는 문자와 일치한다; [a-zA-Z0-9_] 클래스에 해당한다.
  • \W : 숫자 또는 문자가 아닌 것과 일치한다; [^a-zA-Z0-9_] 클래스에 해당한다.

참고 자료