정규 표현식
Crimson Editor의 찾기와 바꾸기(검색 메뉴)는 정규 표현식으로 검색할 수 있습니다 — 정확한 문자열 대신 “무엇을 찾을지”를 패턴으로 기술하는 방식입니다. 찾기·바꾸기 대화상자에서 정규 표현식(Regular expression) 옵션을 켠 뒤, 아래 특수 문자로 패턴을 만듭니다.
예를 들어 [0-9]는 숫자 하나를, ^#include는 #include로 시작하는 모든 줄을 찾습니다.
특수 문자 자체를 찾으려면 앞에 백슬래시를 붙입니다 — \*는 별표(*) 문자와 일치합니다.
특수 문자
| 문자 | 의미 |
|---|---|
^ | 줄의 시작. ^A는 줄 맨 앞의 “A”에만 일치합니다. |
$ | 줄의 끝. abc$는 줄 맨 끝의 “abc”에만 일치합니다. |
. | 임의의 한 문자. |
* | 바로 앞 항목이 0회 이상 반복. |
+ | 바로 앞 항목이 1회 이상 반복(최소 한 번). |
? | 바로 앞 항목이 0 또는 1회. |
| | 선택(alternation) — 양쪽 중 하나가 일치. a|b는 “a” 또는 “b”에 일치합니다. |
[ … ] | 문자 클래스 — 괄호 안 문자 중 하나에 일치. -로 범위를 지정합니다(예: [0-9], [a-z]). |
[^ … ] | [ 바로 뒤의 캐럿(^)은 클래스를 부정합니다. [^0-9]는 숫자가 아닌 문자에 일치합니다. |
( … ) | 하위 패턴을 묶고, 바꾸기에서 쓸 태그 표현식으로 캡처합니다(아래 참고). |
\ | 이스케이프 — 뒤따르는 특수 문자를 문자 그대로 일치. \.는 실제 마침표에 일치합니다. |
태그 표현식 (바꾸기)
괄호는 단순히 묶기만 하는 게 아니라, 각 ( … )가 일치한 텍스트를 기억해 두어 바꾸기
칸에서 다시 쓸 수 있게 합니다.
&또는\0— 일치한 전체 텍스트.\1,\2,\3, … — 첫 번째, 두 번째, 세 번째… 괄호가 캡처한 텍스트.
그래서 (Mr)(\.)로 찾고 \1s\2로 바꾸면 Mr. 가 Mrs. 로 바뀝니다
— \1은 “Mr”, \2는 ”.”, 그 사이에 “s”를 넣은 것입니다.
예제
| 원본 | 찾기 | 바꾸기 | 결과 |
|---|---|---|---|
| Mr. | (Mr)(\.) | \1s\2 | Mrs. |
| abc | (a)b(c) | &-\1-\2 | abc-a-c |
| bcd | (a|b)c*d | &-\1 | bcd-b |
| abcde | (.*)c(.*) | &-\1-\2 | abcde-ab-de |
| cde | (ab|cd)e | &-\1 | cde-cd |
Crimson Editor의 정규 표현식 엔진은 Henry Spencer의 라이브러리를 기반으로 합니다.