Scintilla icon

정규 표현식

SciTE에서 정규 표현식 사용하기

목적

정규 표현식은 기호상수가 아니라 패턴을 검색하는데 사용할 수 있다. 예를 들어, SciTE 특성 파일에 있는 변수들을 찾을 수 있다. $(name.subname)처럼 보이는데 이를 정규 표현식으로 표현하면:
\$([a-z.]+) (포식스 모드라면 \$\([a-z.]+\)).

정규 표현식에서 태그붙은 표현식을 사용하면 복잡한 변형을 교체할 수 있다. 예를 들어, 숫자 쌍이 ','로 구분되면 정규 표현식을 교체해서 순서를 바꿀 수 있다:
posix 모드에서는 \([0-9]+\),\([0-9]+\) (또는 ([0-9]+),([0-9]+) , 아니면 심지어 (\d+),(\d+))를
다음과 같이 바꿀 수 있다:
\2,\1

문법

정규 표현식 문법은 매개변수 find.replace.regexp.posix에 의존한다:
0으로 설정하면, 구문은 구형 유닉스 스타일을 사용한다. \(\) 표식은 부분을 나포하는데 사용하고 반면 ( 그리고 )는 그 자체로 문자이다.
설정이 1이면, 구문은 현대적인 스타일을 사용한다. ( 그리고 ) 표식은 부분을 나포하는데 사용하고 \( 그리고 \)는 평범한 괄호이다.

[1] char
특수 문자(메타문자)가 아닌한, 자신에 일치한다: posix 모드에서 . \ [ ] * + ? ^ $ and ( ).
[2] .
어느 문자에나 부합한다.
[3] \
다음 문자에 부합한다. 다음은 제외한다: 역사선은 자기 자신과 기타 모든 메타-문자들에 대하여 피신 문자로 사용된다.
[4] [set]
집합에 있는 문자 하나와 일치한다. 집합에서 첫 문자가 ^이면, 그 집합에 없는 문자에 일치한다. 즉, 그 집합의 여집합에 일치한다. S부터 E까지 문자집합을 지정하는데 간략하게 S-E (시작 - 끝)이 사용된다. 특수 문자 ] 그리고 -는 집합에서 첫 문자로 나타나면 아무 의미도 갖지 않는다. 둘 모두 포함하려면, 앞에 -를 두자: [-]A-Z] (아니면 그냥 역사선을 붙여 처리하자).
예제부합
[-]|]세 문자에 부합한다
[]-|]]에서 | 문자까지 일치한다
[a-z]소문자 알파벳
[^-]] - 그리고 ]를 제외하고 모든 문자
[^A-Z]알파벳 대문자를 제외한 모든 문자
[a-zA-Z]알파벳 문자
[5] *
([3]번의 [8], [9] 그리고 [10] 형태를 제외하고), [1]부터 [4]까지의 정규 표현식 다음에 별 문자 (*)가 오면 그 형태가 0개 이상 부합한다.
[6] +
1개 이상 부합한다는 점만 제외하고 [5]와 같다.
[5-6]
[5][6] 모두 탐욕적이다 (되도록이면 많이 일치한다). 다음에 '게으른' 빈도지시자(?)가 따르지 않는 한 말이다. 이 경우 [5][6] 모두 되도록이면 덜 일치한다.
[7] ?
0개 또는 1개 일치한다는 점만 빼면 [5]와 같다.
[8]
[1]부터 [13] 형태의 정규 표현식은 \(form\) (또는 posix에서는 (form))와 같이 둘러싸면 form에 부합하는 것에 부합한다. 울타리(enclosure)는 태그 집합을 만든다. [9]에 사용되고 패턴 교체에 사용된다. 태그 붙은 형태는 1부터 번호가 매겨진다.
[9]
\ 다음에 1부터 9까지의 숫자가 오면 앞에서 부합한 태그 정규표현식에 부합한다 ([8]).
[10] \< \>
\< 구조로 시작하고 \> 구조로 끝나는 정규 표현식은 패턴이 단어의 시작과 끝에 부합하도록 제한한다. 단어는 A-Z a-z 0-9 그리고 _ 문자로 시작하고 끝나는 문자열로 정의된다. Scintilla는 이 정의를 사용자가 설정하도록 확장한다. 단어는 반드시 앞과 뒤에 위에서 언급한 문자들을 제외한 문자가 와야 한다.
[11] \l
역사선 다음에 d, D, s, S, w 또는 W가 오면 문자 부류가 된다 ( [집합] 안이든 밖이든 상관없다).
[12] \xHH
역사선 다음에 x가 오고 다음에 두 자리 16진수가 오면 이에 해당하는 Ascii 코드 문자가 된다. 다음에 두 자리 16진수가 오지 않으면 'x'는 문자 그 자체이다.
[13]
복합 정규 표현식 xy는 x에 가장 길게 일치한 다음 y에 일치해야 부합한다 (x와 y는 [1]에서 [12]까지의 형태임).
[14] ^ $
^ 문자로 시작하고 $ 문자로 끝나는 정규표현식은 패턴이 줄 처음이나 줄 끝에 부합하도록 제한한다. [anchors] 이 패턴 이외의 곳에서 ^와 $는 평범한 문자로 취급된다.

고지

이 문서 대부분은 최초 오잔(Ozan S. Yigit)이 작성했다.
닐(Neil Hodgson)과 필리페(Philippe Lhoste)가 추가했다.
이 문서는 공개 영역에 위치한다.