한정 기호를 사용하면 다음과 같이 패턴에서 문자 또는 시퀀스의 반복을 지정할 수 있습니다.
한정 기호 메타문자
|
설명
|
*
(별표)
|
바로 앞의 항목이 0번 이상 반복된 것을 찾습니다.
|
+
(더하기)
|
바로 앞의 항목이 1번 이상 반복된 것을 찾습니다.
|
?
(물음표)
|
바로 앞의 항목이 0번 또는 1번 반복된 것을 찾습니다.
|
{
n
}
{
n
,}
및
{
n
,
n
}
|
앞의 항목에 대한 숫자 한정 기호 또는 한정 기호 범위를 지정합니다.
/A{27}/
27번 반복된 A 문자를 찾습니다.
/A{3,}/
3번 이상 반복된 A 문자를 찾습니다.
/A{3,5}/
3~5번 반복된 A 문자를 찾습니다.
|
한정 기호를 단일 문자, 문자 클래스 또는 그룹에 적용할 수 있습니다.
-
/a+/
1번 이상 반복된
a
문자를 찾습니다.
-
/\d+/
하나 이상의 숫자를 찾습니다.
-
/[abc]+/
a
,
b
또는
c
중에서 하나 이상의 문자가 반복되는 항목을 찾습니다.
-
/(very, )*/
very
라는 단어와 쉼표, 공백이 차례로 0번 이상 반복되는 항목을 찾습니다.
한정 기호가 적용된 괄호 그룹 내에서 한정 기호를 사용할 수 있습니다. 예를 들어, 다음 한정 기호는
word
및
word-word-word
와 같은 문자열을 찾습니다.
/\w+(-\w+)*/
기본적으로 일반 표현식은
최장 일치를 수행합니다.
즉, 일반 표현식의 하위 패턴(예:
.*
)은 문자열에서 가능한 한 많은 문자를 찾은 후 해당 일반 표현식의 다음 부분으로 이동합니다. 예를 들어, 다음 일반 표현식과 문자열을 검토해 보십시오.
var pattern:RegExp = /<p>.*<\/p>/;
str:String = "<p>Paragraph 1</p> <p>Paragraph 2</p>";
이 일반 표현식은 전체 문자열을 찾습니다.
<p>Paragraph 1</p> <p>Paragraph 2</p>
하지만
<p>...</p>
그룹을 하나만 찾으려는 경우를 가정해 봅니다. 다음과 같이 하면 이렇게 할 수 있습니다.
<p>Paragraph 1</p>
한정 기호를
최단 일치 한정 기호
로 바꾸려면 해당 한정 기호 뒤에 물음표(
?
)를 추가합니다. 예를 들어, 최단 일치 한정 기호
*?
를 사용하는 다음 일반 표현식은
<p>
, 최소 문자 수(최단 일치),
</p>
가 차례로 나오는 항목을 찾습니다.
/<p>.*?<\/p>/
한정 기호를 사용할 경우에는 다음과 같은 내용을 항상 기억해야 합니다.
-
{0}
및
{0,0}
한정 기호는 일치시킬 때 항목을 제외하지 않습니다.
-
/abc+*/
와 같이 여러 한정 기호를 함께 사용하지 마십시오.
-
도트(.)는
*
한정 기호가 뒤에 나오더라도
s
(
dotall
) 플래그가 설정되어 있지 않으면 행을 확장하지 않습니다. 예를 들어 다음과 같은 코드를 살펴봅니다.
var str:String = "<p>Test\n";
str += "Multiline</p>";
var re:RegExp = /<p>.*<\/p>/;
trace(str.match(re)); // null;
re = /<p>.*<\/p>/s;
trace(str.match(re));
// output: <p>Test
// Multiline</p>
자세한 내용은
플래그 및 속성
을 참조하십시오.