정규표현식과 trim 맛보기.

ITWeb/개발일반 2011. 12. 7. 17:50
얼마전에 작성했던 Cookie 맛보기에서 사용된 정규표현식에 대한 질문을 하신 후배분이 있어 맛보기 들어 갑니다. ㅎㅎ

[이전글]
http://jjeong.tistory.com/532

[사용된 정규표현식 코드]

key = key.replace(/^\s+|\s+$/g, "");


[간단설명]
- 그냥 이해하기 쉽게 풀어 쓴것이니 설명에 대해서는 정규표현식을 검색하셔서 공부 하심 됩니다.

/ : 시작과 끝을 의미 합니다.
^ : 문자열의 처음 시작 부분을 의미 합니다. (일치하는 패턴이 문자열의 처음에 있어야 함)
\s : 공백을 의미 합니다. (Whitespace)
+ : 1번 이상 반복을 의미 합니다.
    \s+ : 이렇게 하면 공백이 여러번 나타나는걸 의미 하겠죠.
| : 또는 (or) 을 의미 합니다.
    a|b : a 이거나 b 이거나 라고 보시면 됩니다.
$ : 문자열의 제일 마지막 부분을 의미 합니다. (일치하는 패턴이 문자열의 끝에 있어야 함)
g : 문자열의 전체에서 매칭을 하라는 의미 입니다.

결국 정리 하면,
문자열의 제일 앞부분과 제일 뒷부분에 반복되는 공백을 제거 하라는 의미 입니다. 



[참고내용]
- 한빛미디어에서 퍼 왔습니다.
http://www.hanb.co.kr/network/view.html?bi_id=1653

[메타문자 요약]

다음은 정규 표현식에서 사용 가능한 메타문자를 보여준다.

/ - 정규 표현식을 시작하고 끝낸다.

. - 줄 바꿈 문자를 제외한 임의의 한 문자와 일치한다.

element* - 요소와 0번 이상 일치한다.

element+ - 요소와 1번 이상 일치한다.

element? - 요소와 일치하지 않거나 한 번 일치한다.

[characters] - 대괄호 안에 포함된 한 문자와 일치한다.

[^characters] - 대괄호 안에 포함되어 있지 않은 한 문자와 일치한다.

(regex) - regex를 그룹으로 간주하여 갯수를 세거나, 다음에 오는 *, +, ?에 적용한다.

left|right - left나 right와 일치한다.

l-r - l과 r사이의 문자 범위와 일치한다(대괄호 안에 있을 때만)

^ - 일치하는 패턴이 문자열의 처음에 있어야 함

$ - 일치하는 패턴이 문자열의 끝에 있어야 함

b - 단어의 경계와 일치한다.

B - 단어의 경계가 아닌 문자와 일치한다.

d - 숫자 문자 하나와 일치한다.

D - 숫자 문자가 아닌 문자와 일치한다.

n - 줄 바꿈 문자와 일치한다.

s - 공백 문자와 일치한다.

S - 공백 문자가 아닌 문자와 일치한다.

t - 탭 문자와 일치한다.

w - 단어 문자(a-z, A-Z, 0-9, _)와 일치한다

W - 비단어 문자(a-z, A-Z, 0-9, _이 아닌 문자)와 일치한다

x - x(x가 메타문자이더라도 x를 쓰고자 할 때 유용함)

{n} - 정확히 n번 일치한다.

{n,} - n번이나 그 이상 일치한다.

{min,max} - 최소 min, 최대 max 번 일치한다.



[일반적인 변경자]

정규 표현식에서는 몇 가지 변경자(modifier)를 사용할 수 있다.

/g - "전역" 일치를 활성화. 바꾸기(replace) 기능을 쓸 경우 이 변경자를 쓰면 첫 번째 일치 결과만 바꾸는 것이 아니라 모든 일치 결과를 바꾼다.

/i - 정규 표현식이 대소문자를 구별하지 않음. 따라서 /[a-zA-Z]/ 대신 /[a-z]/i나 [A-Z]/i를 지정하면 된다.

/m - 캐럿(^)과 달러 기호($)가 대상 문자열 안의 줄 바꿈 전과 후와 일치하는 경우, 여러 줄 모드(multi-line mode)를 활성화. 보통 여러 줄 문자열에서 ^는 문자열의 시작과 일치하고, $는 문자열의 끝과 일치한다.


: