정규식 만들기

정규식은 텍스트 본문을 검색할 때 일치하는 것으로 간주할 하나 이상의 문자열을 표현합니다. 검색되는 텍스트와 비교할 문자 패턴 역할을 합니다.

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

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

정규식 만들기

식의 다양한 구성 요소를 한 쌍의 구분 기호 사이에 넣어 정규식을 만듭니다. JScript에서는 다음 예제와 같이 한 쌍의 슬래시(/) 문자가 구분 기호입니다.

/expression/

정규식의 예

다음 표에는 일반적인 정규식의 예가 나와 있습니다.

정규식

설명

/^\s*$/

빈 줄을 찾습니다.

/\d{2}-\d{5}/

2자리 숫자, 하이픈 및 추가 5자리 숫자로 구성된 ID 번호를 찾습니다.

/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/

HTML 태그를 찾습니다.

일반 문자

정규식의 가장 단순한 형식은 검색 문자열과 비교되는 단일 일반 문자입니다. 예를 들어, 단일 문자 정규식 A는 검색된 문자열에서 A 문자가 나타날 때마다 찾습니다.

다음은 JScript 단일 문자 정규식의 몇 가지 예입니다.

/a/
/7/
/M/

여러 개의 단일 문자를 결합하여 더 큰 식을 만들 수 있습니다. 예를 들어, /the/ 식은 검색된 "the", "there", "other" 및 "over the lazy dog" 문자열에서 "the"를 찾습니다.

연결 연산자는 필요 없으며 한 문자 다음에 다른 문자를 입력하기만 하면 됩니다.

메타문자

정규식에는 일반 문자 외에도 메타문자가 있을 수 있습니다. 예를 들어, \d 메타문자는 숫자를 찾습니다.

자세한 내용은 정규식 구문을 참조하십시오.

일반 문자는 명시적으로 메타문자로 지정되지 않은 모든 인쇄할 수 있는 문자 및 인쇄돼지 않는 문자로 구성됩니다. 여기에는 모든 알파벳 대/소문자, 모든 숫자, 모든 문장 부호 및 일부 기호가 포함됩니다.

문자 일치

마침표 문자(.)는 문자열에서 줄 바꿈 문자(\n)를 제외한 모든 단일 인쇄 문자나 인쇄되지 않는 문자를 찾습니다. /a.c/ 정규식은 "aac", "abc", "acc", "adc", "a1c", "a2c", "a-c" 및 "a#c"를 찾습니다.

검색된 문자열에 포함된 마침표(.)를 찾으려면 식에서 마침표 앞에 백슬래시(\) 문자를 추가합니다. /filename\.ext/ 식은 "filename.ext"를 찾습니다.

일치하는 문자 목록

하나 이상의 개별 문자를 대괄호([ ])로 묶어 일치하는 문자 목록을 만들 수 있습니다.

대괄호 식으로 묶인 문자는 대괄호 식이 나타나는 정규식의 위치에서 단일 문자만 찾습니다. 예를 들어, /Chapter [12345]/ 식은 "Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4" 및 "Chapter 5"를 찾습니다.

문자 자체가 아닌 범위를 사용하여 일치하는 문자를 표현하려면 하이픈(-) 문자를 사용하면 됩니다. /Chapter [1-5]/ 식은 /Chapter [12345]/와 같습니다.

목록의 시작 부분에 캐럿(^) 문자를 포함하여 목록이나 범위에 없는 모든 문자를 찾을 수 있습니다. 예를 들어, /[^aAeEiIoOuU]/ 식은 모음이 아닌 모든 문자를 찾습니다.

자세한 내용은 일치하는 문자 목록를 참조하십시오.

수량자

수량자를 사용하여 특정 횟수만큼 문자 또는 문자 집합이 반복되는 정규식을 지정할 수 있습니다.

수량자는 해당 수량자 바로 앞(왼쪽)에 있는 식을 참조합니다.

수량자는 중괄호({})로 묶이고 발생 빈도의 상한과 하한을 지정하는 숫자 값을 포함합니다. 예를 들어, c{1,2}는 문자 c가 한 번 또는 두 번 나오는 항목을 찾습니다.

숫자가 하나만 지정되어 있고 그 뒤에 쉼표가 오지 않는 경우 이 숫자는 상한으로 사용됩니다. 예를 들어, c{3}은 문자 c가 정확히 세 번 나오는 항목을 찾고 c{5,}는 문자 c가 다섯 번 이상 나오는 항목을 찾습니다.

다음 표에서와 같이 단일 문자 수량자도 사용할 수 있습니다.

수량자

명시적 수량자

의미

*

{0,}

이전 요소를 0개 이상 찾습니다.

+

{1,}

이전 요소를 1개 이상 찾습니다.

?

{0,1}

이전 요소를 0개 또는 1개 찾습니다.

다음 표에서는 몇 가지 샘플 식과 함께 이러한 식이 찾는 검색 문자열을 보여 줍니다.

정규식

수량자의 의미

일치 항목

/Chapter [1-9][0-9]{0,}/ 또는

/Chapter [1-9][0-9]*/

[0-9]를 0개 이상 찾습니다.

"Chapter 1", "Chapter 25", "Chapter 401320"

/Chapter [0-9]{1,2}/

[0-9]를 1개 또는 2개 찾습니다.

"Chapter 0", "Chapter 03", "Chapter 1", "Chapter 25", "Chapter 40"

/Chapter [1-9][0-9]{0,1}/ 또는

/Chapter [1-9][0-9]?/

[0-9]를 0개 또는 1개 찾습니다.

"Chapter 1", "Chapter 25", "Chapter 40"

자세한 내용은 JScript의 수량자를 참조하십시오.

줄 및 단어 경계

앵커를 사용하면 정규식이 검색된 문자열의 시작 부분이나 끝 부분에 나타나거나 검색된 문자열에 있는 줄 또는 단어의 시작 부분이나 끝 부분에 나타나서 일치 항목이 되도록 지정할 수 있습니다. 자세한 내용은 앵커를 참조하십시오.

대체 요소 지정

"|" 문자는 둘 이상의 요소가 일치하는 항목을 나타내도록 지정합니다. 예를 들어, JScript 정규식 /(Chapter|Section) [1-9]/는 "Chapter 1", "Chapter 9" 및 "Section 2"를 찾습니다. 자세한 내용은 교체 및 부분식을 참조하십시오.

부분 일치 사용

괄호는 하위 식을 만들기 위해 정규식에서 사용됩니다. 이에 따른 부분 일치는 프로그램에 의해 검색될 수 있습니다. 자세한 내용은 교체 및 부분식를 참조하십시오.

하위 식은 정규식 및 대체 문자열 내에서 참조할 수 있습니다. 자세한 내용은 JScript의 역참조를 참조하십시오.

참고 항목

개념

정규식 프로그래밍

정규식 구문