■ 정규식의 기초 | |||
정규식 |
설명 | ||
. |
단일 문자를 찾습니다. | ||
* |
a뒤에 0 개 이상의 b가 있는 항목을 찾습니다. 'ab*'는 "a", "abb" 등입니다. | ||
+ |
a뒤에 하나 이상의 b가 있는 항목을 찾습니다. 'ab+'는 "ab", "abb" 등이지만 "a"는 아닙니다. | ||
? |
a뒤에 b가 하나 있을 수도 있고 없을 수도 있는 항목을 찾습니다. "ab?"는 "ab" 또는 "a"를 찾습니다. | ||
() |
괄호 안에 있는 콘텐츠를 항목으로 인식합니다. | ||
[] |
해당 목록에서 한 항목을 찾습니다. | ||
- |
목록에서 범위를 생성합니다. | ||
| |
x 또는 y를 찾습니다. 예를 들어, "z|food"는 "z" 또는 "food"를 찾습니다. "(z|f)ood"는 "zood" 또는 "food"를 찾습니다. | ||
^ |
입력 문자열의 시작 위치를 찾습니다. “^A” 는 문자열 시작 부분의 “A” 만 일치시킵니다. | ||
^ |
왼쪽 대괄호 [ 바로 다음의 ^는 다른 의미입니다. 대괄호 식에서 사용될 때는 대괄호에 포함된 문자 집합을 제외한 문자열을 찾습니다. “[^0-9]” 는 대상 값이 숫자가 아니어야 한다는 의미입니다. | ||
$ |
문자열의 끝에서 일치됩니다. “abc$” 는 문자열의 끝에 있을 경우에만 “abc” 를 매칭시킵니다. | ||
\ |
위의 각 기능에서 벗어납니다(escape). “\.” 은 . (쩜)을 의미합니다. | ||
■ 우선순위 | |||
일단 정규식을 구성하면 산술식처럼 평가됩니다. 즉, 왼쪽에서 오른쪽으로 평가되고 우선 순위에 따라 이루어집니다. 아래 표는 다양한 정규식 연산자의 우선 순위를 가장 높은 것에서 가장 낮은 것까지 보여줍니다. | |||
연산자 |
설명 | ||
\ | 이스케이프 | ||
(), (?:), (?=), [] | 괄호 및 대괄호 | ||
*, +, ?, {n}, {n,}, {n,m} | 한정 기호 | ||
^, $, \anymetacharacter | 앵커 및 시퀀스 | ||
| | 대체 | ||
■ 정규식의 응용 | |||
정규식 |
설명 | ||
a?b+$ | a가 있을 수도 있고 없을 수도 있으며 그 뒤에 하나 이상의 b로 끝나는 문자열 | ||
a.[0-9] | a뒤에 한 문자와 숫자가 붙어 있는 패턴 | ||
[ab] | a 또는 b (a|b 와 동일한 표현) | ||
^[a-zA-Z] | 영문자로 시작하는 문자열 | ||
[^a-zA-Z] | 영문자가 없는 문자열 | ||
[0-9] | 0 부터 9 까지 숫자 중 하나 | ||
[0-9]+ | 1개 이상 자릿수의 숫자. 즉, 모든 숫자 | ||
[0-9]* | 0개 이상 자릿수의 숫자. 모든 숫자일 수도 있고 아예 숫자가 없을 수도 있다. | ||
[^-0-9a-zA-Z._]+ | 하이픈, 숫자, 영어소문자, 영어대문자, 쩜, 언더바가 아닌 하나 이상의 문자 | ||
(.*) | 모든 문자 | ||
■ 정규식 예시 | |||
괄호로 묶은 항목은 순서대로 \1, \2, \3...로 나타냅니다. & 는 원본 값을 뜻합니다. | |||
원본 |
이전이름 |
새로운이름 |
결과 |
Mr.jpg | (Mr)(\..*) | \1s\2 | Mrs.jpg |
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 |
정규식을 이용한 이름변경에서 이전이름 항목의 맨 끝에 # 을 추가하면 "정규표현식"을 "치환" 기능으로 사용되도록 해줍니다. # 다음에 숫자를 추가하면 반복할 회수를 지정하는 의미입니다. | |||
예) (.*) - (.*)#5 |
'유용한 정보 > · ETC' 카테고리의 다른 글
리모트 시스템 정보 확인 명령어 (systeminfo) (0) | 2014.09.12 |
---|---|
Lenovo X220 복구영역 다시 만들기 (0) | 2012.05.04 |
블루스크린 오류 목록 (0) | 2011.12.15 |
Biometry not allowed by operating system policies (2) | 2011.12.04 |
HDTV 안테나 만들기 (4) | 2011.04.20 |