Recent posts

Recent comments

Archive

Calender

«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

출처 : MSDN Library

Visual Studio 2005 & Visual Studio 2008 & Visual Studio 2010 을 종합한 내용이며,
흐린 색으로 표시된, 괄호() 안의 내용은 개인적으로 덧붙인 사족입니다. ^^*
어려운 말이 등장하는데, 사족이 없다면 "아,,, 얘도 모르는구나,,," 하시면 됩니다. ㅡ.ㅡ;;
제가 잘못 이해하고 있는 부분이 있다면 댓글을 달아 주십시오. 그런 지적질(?)은 언제나 환영입니다. *^^*


정규식의 개념

정규식을 작성해 본 적은 없더라도, 한번쯤은 사용해 보았을 것입니다.


예를 들어,
하드 디스크에서 파일을 찾아볼 때, 와일드카드인 ?와 * 를 사용한 적이 있을 것입니다.


? 라는 와일드카드 문자는 파일 이름에서 단일 문자를 찾고,
* 라는 와일드카드 문자는 0개 이상의 문자를 찾습니다.
? 문자 대신 * 문자를 사용하면 더 많은 파일을 찾을 수 있습니다.

이러한 검색 방법은 유용하지만 제한적이기도 합니다.
?와 * 와일드카드 문자의 기능에서도, 정규식 이면의 개념을 도입하고 있지만
정규식은 좀 더 강력하고 융통성 있는 기능을 제공합니다.


정규식은 텍스트 본문을 검색할 때, 일치하는 것으로 간주할, 하나 이상의 문자열을 표현합니다.
식은, 검색되는 텍스트와 비교할 문자 패턴으로 사용됩니다.
정규식을 사용하여, 문자열에서 패턴을 검색하고, 텍스트를 바꾸고, 부분 문자열을 추출할 수 있습니다.


일반적인 검색 및 바꾸기 작업에서는 원하는 검색 결과와 일치하는 정확한 텍스트를 제공해야 합니다.
이러한 기술은 정적 텍스트의 간단한 검색 및 바꾸기 작업에는 적합할 수 있지만,
유연성이 떨어질 수 있고 동적 텍스트를 검색하는 것이 불가능하진 않지만 어렵습니다.



정규식을 사용하면 다음을 수행할 수 있습니다.

  • 문자열 내에서 패턴을 테스트합니다.
    예를 들어, 문자열 내에서 전화 번호 패턴이나 신용 카드 번호 패턴이 사용되는지 확인하기 위해
    입력 문자열을 테스트할 수 있습니다.
    이를 데이터 유효성 검사라고 합니다.
  • 텍스트를 바꿉니다.
    문서에서 특정 텍스트를 확인하여 완전히 제거하거나 다른 텍스트로 바꿔야 할 때
    정규식을 사용할 수 있습니다.
  • 패턴 일치에 따라 문자열에서 부분 문자열을 추출합니다.
    문서나 입력 필드 내에서 특정 텍스트를 찾을 수 있습니다.


예를 들어,
전체 웹 사이트를 검색하여 오래된 자료를 제거한 다음, 일부 HTML 형식 지정 태그를 바꾸어야 하는 경우
정규식을 사용하여,
해당 자료나 HTML 형식 지정 태그가, 각 파일에 들어있는지 확인할 수 있습니다.
이 과정에서 영향을 받는 파일 목록이,
제거 또는 변경 대상이 되는 자료가 포함된 파일 목록으로 줄어듭니다.
그런 다음, 정규식을 사용하여 오래된 자료를 제거할 수 있습니다.
마지막으로 정규식을 사용하여 태그를 검색하고 바꿀 수 있습니다.


정규식은, 문자열 처리 기능이 알려져 있지 않은
JScript나 C 등의 언어에서도 유용합니다.
(여기서의 JScript는 MS용 자바스크립트입니다)


작성 방법

기본적으로 정규식은 일반 문자와 메타문자로 구성됩니다.


정규식의 작성 방법은 수학의 산술식을 만드는 방법과 매우 비슷합니다.
즉, 다양한 메타문자와 연산자를 사용하여, 작은 식을 결합하여 큰 식을 만듭니다.


정규식의 구성 요소는 개별 문자, 문자 집합, 문자 범위, 문자 사이에서 선택한 항목
또는 이러한 구성 요소의 모든 조합이 될 수 있습니다.


식의 다양한 구성 요소를 한 쌍의 구분 기호 사이에 집어 넣어 정규식을 구성합니다.
JScript에서는 다음과 같이 한 쌍의 슬래시(/) 문자가 구분 기호로 쓰입니다.
(태그가 여는 태그 '<>'로 시작해서 닫는 태그 '</>'로 끝나듯이, JScript에서의 정규식은 '/'로 시작해서 '/'로 끝납니다)

	/expression/ 

위의 예제에서 정규식 패턴(expression)은 RegExp 개체의 Pattern 속성에 저장됩니다.


우선 순위

정규식은 수식과 유사하게 왼쪽에서부터 오른쪽으로 계산되며 우선 순위를 따릅니다.
다음 표에서는 다양한 정규식 연산자를 우선 순위가 높은 것부터 순서대로 설명합니다.

\ 이스케이프(Escape)
(), (?:), (?=), [] 괄호와 대괄호
*, +, ?, {n}, {n,}, {n,m} 수량자
^, $, \메타문자, 문자 앵커와 시퀀스
| 교체
[표 1] 정규식 - 연산자


이 내용이 도움이 되셨다면, 아래의 하트 버튼을 눌러주세요. *^^*

'정규식 (정규표현식) > MSDN Library' 카테고리의 다른 글

06 정규식 - 교체 / 그룹화 / 역참조  (0) 2014.12.11
05 정규식 - 앵커  (0) 2014.12.11
04 정규식 - 수량자  (0) 2014.12.11
03 정규식 - 문자 일치  (0) 2014.12.11
02 정규식 - 문자의 종류  (0) 2014.12.11