Adobe® Flash® Platform용 ActionScript® 3.0 참조 설명서
 |  패키지 및 클래스 목록 숨기기 |  패키지  |  클래스  |  새로운 내용  |  색인  |  부록  |  영어로 표시되는 이유
필터: 서버에서 데이터를 검색하는 중...
서버에서 데이터를 검색하는 중...
최상위 레벨 

RegExp  - AS3

패키지최상위 레벨
클래스public dynamic class RegExp
상속RegExp Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

RegExp 클래스를 사용하면 문자열을 검색하고 문자열의 텍스트를 바꾸는 데 사용할 수 있는 패턴인 일반 표현식을 사용할 수 있습니다.

new RegExp() 생성자를 사용하거나 RegExp 리터럴을 변수에 할당하여 새 RegExp 객체를 만들 수 있습니다.

 var pattern1:RegExp = new RegExp("test-\\d", "i");
     var pattern2:RegExp = /test-\d/i;
     

자세한 내용은 ActionScript 3.0 개발자 안내서에서 "일반 표현식 사용"을 참조하십시오.

예제 보기

관련 API 요소



공용 속성
 속성정의 주체
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  dotall : Boolean
[읽기 전용] 일반 표현식에서 도트 문자(.)가 개행 문자와 일치하는지 여부를 지정합니다.
RegExp
  extended : Boolean
[읽기 전용] 일반 표현식에서 확장 모드를 사용할지 여부를 지정합니다.
RegExp
  global : Boolean
[읽기 전용] 일반 표현식에서 전역 비교를 사용할지 여부를 지정합니다.
RegExp
  ignoreCase : Boolean
[읽기 전용] 일반 표현식에서 대/소문자가 무시되는지 여부를 지정합니다.
RegExp
  lastIndex : Number
문자열에서 다음 검색을 시작할 인덱스 위치를 지정합니다.
RegExp
  multiline : Boolean
[읽기 전용] m(multiline) 플래그 설정 여부를 지정합니다.
RegExp
  source : String
[읽기 전용] 일반 표현식의 패턴 부분을 지정합니다.
RegExp
공용 메서드
 메서드정의 주체
  
RegExp(re:String, flags:String)
두 문자열을 사용하여 일반 표현식을 구성할 수 있습니다.
RegExp
  
지정된 문자열 str에서 일반 표현식 검색을 수행합니다.
RegExp
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
  
지정된 문자열 str에서 일반 표현식이 일치하는지 테스트합니다.
RegExp
 Inherited
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
속성 세부 정보

dotall

속성
dotall:Boolean  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

일반 표현식에서 도트 문자(.)가 개행 문자와 일치하는지 여부를 지정합니다. 일반 표현식을 구성할 때 s 플래그를 사용하여 dotall = true로 설정합니다.



구현
    public function get dotall():Boolean

예제  ( 예제 사용 방법 )
다음 예제에서는 일반 표현식에서 s(dotall) 플래그를 설정한 결과를 보여 줍니다.
var str:String = "<p>Hello\n"
        + "again</p>"
        + "<p>Hello</p>";

var pattern:RegExp = /<p>.*?<\/p>/;
trace(pattern.dotall) // false
trace(pattern.exec(str)); // <p>Hello</p>

pattern = /<p>.*?<\/p>/s;
trace(pattern.dotall) // true
trace(pattern.exec(str)); 
   

extended

속성 
extended:Boolean  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

일반 표현식에서 확장 모드를 사용할지 여부를 지정합니다. RegExp 객체가 확장 모드인 경우 생성자 문자열의 공백 문자는 무시됩니다. 이렇게 하면 생성자의 가독성을 높일 수 있습니다.

일반 표현식을 구성할 때 x 플래그를 사용하여 extended = true로 설정합니다.



구현
    public function get extended():Boolean

예제  ( 예제 사용 방법 )
다음 예제에서는 동일한 일반 표현식을 구성하는 다양한 방법을 보여 줍니다. 각 일반 표현식은 xxx-xxx-xxxx, (xxx) xxx-xxxx 또는 (xxx)xxx-xxxx 전화 번호 패턴과 일치합니다. 두 번째 일반 표현식에서는 x 플래그를 사용하므로 문자열의 공백이 무시됩니다.
var rePhonePattern1:RegExp = /\d{3}-\d{3}-\d{4}|\(\d{3}\)\s?\d{3}-\d{4}/; 
var str:String = "The phone number is (415)555-1212.";

trace(rePhonePattern1.extended) // false
trace(rePhonePattern1.exec(str)); // (415)555-1212

var rePhonePattern2:RegExp = / \d{3}-\d{3}-\d{4}  |   \( \d{3} \) \ ? \d{3}-\d{4}  /x; 
trace(rePhonePattern2.extended) // true
trace(rePhonePattern2.exec(str)); // (415)555-1212

global

속성 
global:Boolean  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

일반 표현식에서 전역 비교를 사용할지 여부를 지정합니다. global == true인 경우 lastIndex 속성은 일치 항목이 발견된 후 설정됩니다. 이후에 비교 작업을 요청하면 일반 표현식 엔진이 문자열의 lastIndex 위치에서 시작됩니다. 일반 표현식을 구성할 때 g 플래그를 사용하여 globaltrue로 설정합니다.



구현
    public function get global():Boolean

예제  ( 예제 사용 방법 )
다음 예제에서는 exec() 메서드에서 g(global) 플래그를 설정한 결과를 보여 줍니다.
var pattern:RegExp = /foo\d/; 
var str:String = "foo1 foo2";
trace(pattern.global); // false
trace(pattern.exec(str)); // foo1
trace(pattern.lastIndex); // 0
trace(pattern.exec(str)); // foo1

pattern = /foo\d/g;
trace(pattern.global); // true
trace(pattern.exec(str)); // foo1
trace(pattern.lastIndex); // 4
trace(pattern.exec(str)); // foo2

ignoreCase

속성 
ignoreCase:Boolean  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9

일반 표현식에서 대/소문자가 무시되는지 여부를 지정합니다. 일반 표현식을 구성할 때 i 플래그를 사용하여 ignoreCase = true로 설정합니다.



구현
    public function get ignoreCase():Boolean

예제  ( 예제 사용 방법 )
다음 예제에서는 i(ignoreCase) 플래그를 설정한 결과를 보여 줍니다.
var pattern:RegExp = /bob/; 
var str:String = "Bob bob";
trace(pattern.ignoreCase); // false
trace(pattern.exec(str)); // bob

pattern = /bob/i;
trace(pattern.ignoreCase); // true
trace(pattern.exec(str)); // Bob

lastIndex

속성 
lastIndex:Number

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

문자열에서 다음 검색을 시작할 인덱스 위치를 지정합니다. 이 속성은 RegExp 클래스의 exec()test() 메서드에 적용됩니다. 그러나 String 클래스의 match(), replace()search() 메서드는 lastIndex 속성을 무시하고 모든 검색을 문자열의 처음부터 시작합니다.

일반 표현식에서 g(global) 플래그가 true로 설정된 경우 exec() 또는 test() 메서드에서 일치 항목을 찾으면 lastIndex 속성이 마지막 일치 항목에서 일치하는 하위 문자열에 있는 마지막 문자 다음 문자의 인덱스 위치로 자동으로 설정됩니다. g(global) 플래그가 false로 설정되어 있으면 lastIndex 속성이 설정되지 않습니다.

lastIndex 속성을 설정하여 문자열에서 일반 표현식 비교를 시작할 위치를 조정할 수 있습니다.



구현
    public function get lastIndex():Number
    public function set lastIndex(value:Number):void

예제  ( 예제 사용 방법 )
다음 예제에서는 lastIndex 속성을 설정한 결과를 보여 주고 g(global) 플래그가 설정되어 있는 일반 표현식에 exec() 메서드를 호출한 후 이 속성이 업데이트됨을 보여 줍니다.
var pattern:RegExp = /\w\d/g; 
var str:String = "a1 b2 c3 d4";
pattern.lastIndex = 2; 
trace(pattern.exec(str)); // b2
trace(pattern.lastIndex); // 5
trace(pattern.exec(str)); // c3
trace(pattern.lastIndex); // 8
trace(pattern.exec(str)); // d4
trace(pattern.lastIndex); // 11
trace(pattern.exec(str)); // null

multiline

속성 
multiline:Boolean  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

m(multiline) 플래그 설정 여부를 지정합니다. 이 플래그를 설정하면 일반 표현식에서 캐럿(^) 및 달러 기호($)가 개행 문자 앞 및 뒤의 위치를 찾습니다. 일반 표현식을 구성할 때 m 플래그를 사용하여 multiline = true로 설정합니다.



구현
    public function get multiline():Boolean

예제  ( 예제 사용 방법 )
다음 예제에서는 m(multiline) 플래그를 설정한 결과를 보여 줍니다.
var pattern:RegExp = /^bob/; 
var str:String = "foo\n"
                + "bob";
trace(pattern.multiline); // false
trace(pattern.exec(str)); // null

pattern = /^bob/m;
trace(pattern.multiline); // true
trace(pattern.exec(str)); // bob

source

속성 
source:String  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

일반 표현식의 패턴 부분을 지정합니다.



구현
    public function get source():String

예제  ( 예제 사용 방법 )
다음 코드에서는 두 일반 표현식의 source 매개 변수를 출력합니다.
var re1:RegExp = /aabb/gi;
trace (re1.source); // aabb

var re2:RegExp = new RegExp("x+y*", "i");
trace(re2.source); // x+y*
생성자 세부 정보

RegExp

()생성자
public function RegExp(re:String, flags:String)

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9

두 문자열을 사용하여 일반 표현식을 구성할 수 있습니다. 문자열 하나는 일반 표현식의 패턴을 정의하고 다른 하나는 일반 표현식에 사용되는 플래그를 정의합니다.

매개 변수
re:String — 일반 표현식의 패턴으로, 생성자 문자열이라고도 합니다. 이 문자열은 일반 표현식의 주요 부분("/" 문자로 둘러싸인 부분)입니다.

참고:

  • 선행 및 후행 "/" 문자를 포함하지 마십시오. 이 문자는 생성자를 사용하지 않고 일반 표현식 리터럴을 정의할 때만 사용해야 합니다. 예를 들어 다음 두 일반 표현식은 동일합니다.
     var re1:RegExp = new RegExp("bob", "i"); 
            var re2:RegExp = /bob/i;
  • RegExp() 생성자 메서드로 정의한 일반 표현식에서 임의의 숫자에 일치하는 \d 같이 백슬래시(\) 문자로 시작하는 메타시퀀스를 사용하려면 백슬래시 문자를 두 번 입력합니다. 예를 들어 다음 두 일반 표현식은 동일합니다.
     var re1:RegExp = new RegExp("\\d+", ""); 
            var re2:RegExp = /\d/;

    첫 번째 표현식의 경우 백슬래시 문자를 두 번 입력해야 합니다. RegExp() 생성자 메서드의 첫 번째 매개 변수가 문자열인데 문자열 리터럴에서는 백슬래시 문자를 두 번 입력해야 단일 백슬래시 문자로 인식되기 때문입니다.

 
flags:String — 일반 표현식의 수정자입니다. 여기에는 다음이 포함될 수 있습니다.
  • g - String 클래스의 replace() 메서드를 사용할 때 첫 번째 일치 항목뿐 아니라 모든 일치 항목을 바꾸려면 이 수정자를 지정합니다. 이 수정자는 RegExp 인스턴스의 global 속성에 해당합니다.
  • i - 정규식이 대/소문자 구분 없이 평가됩니다. 이 수정자는 RegExp 인스턴스의 ignoreCase 속성에 해당합니다.
  • s - 도트(.) 문자가 개행 문자와 일치합니다. 이 수정자는 RegExp 인스턴스의 dotall 속성에 해당합니다.
  • m - 캐럿(^) 문자와 달러 기호($)가 이전 이후 개행 문자와 일치합니다. 이 수정자는 RegExp 인스턴스의 multiline 속성에 해당합니다.
  • x - re 문자열의 공백 문자가 무시되므로 가독성이 높은 생성자를 작성할 수 있습니다. 이 수정자는 RegExp 인스턴스의 extended 속성에 해당합니다.

flags 문자열의 다른 문자는 모두 무시됩니다.

메서드 세부 정보

exec

()메서드
AS3 function exec(str:String):Object

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

지정된 문자열 str에서 일반 표현식 검색을 수행합니다.

일반 표현식에 g(global) 플래그를 설정하지 않은 경우 문자열의 시작 부분(인덱스 위치 0)에서 검색이 시작되며 일반 표현식의 lastIndex 속성은 무시됩니다.

일반 표현식에 g(global) 플래그를 설정한 경우 일반 표현식의 lastIndex 속성에 지정된 인덱스 위치에서 검색이 시작됩니다. 검색에서 하위 문자열이 일치하면 lastIndex 속성이 일치 부분의 끝 위치에 맞게 변경됩니다.

매개 변수

str:String — 검색할 문자열입니다.

반환값
Object — 일치하는 부분이 없으면 null이 반환되고, 그렇지 않으면 속성이 다음과 같은 객체가 반환됩니다.
  • 요소 0에는 완전히 일치하는 하위 문자열이 들어 있고 배열의 다른 요소(1에서 n까지)에는 일반 표현식 중 괄호로 둘러싼 그룹에 일치하는 하위 문자열이 들어 있는 배열
  • index - 문자열 내에서 일치하는 하위 문자열의 문자 위치
  • input - 문자열(str)

관련 API 요소


예제  ( 예제 사용 방법 )
일반 표현식에 g(global) 플래그를 설정하지 않은 경우에는 exec()를 사용하여 문자열에서 첫 번째 일치 항목을 찾을 수 있습니다.
         var myPattern:RegExp = /(\w*)sh(\w*)/ig;   
         var str:String = "She sells seashells by the seashore";
         var result:Object = myPattern.exec(str);
         trace(result);
         

result 객체는 다음과 같이 설정됩니다.

  • result[0]은 완전히 일치하는 항목인 "She"로 설정됩니다.
  • result[1]은 괄호로 둘러싼 첫 번째 일치 그룹인 빈 문자열로 설정됩니다.
  • result[2]는 괄호로 둘러싼 두 번째 일치 그룹인 "e"로 설정됩니다.
  • result.index는 0으로 설정됩니다.
  • result.input은 입력 문자열인 "She sells seashells by the seashore"로 설정됩니다.

다음 예제에서는 일반 표현식에 g(global) 플래그를 설정한 경우 exec()를 반복적으로 사용하여 여러 일치 항목을 찾을 수 있습니다.

         var myPattern:RegExp = /(\w*)sh(\w*)/ig;  
         var str:String = "She sells seashells by the seashore";
         var result:Object = myPattern.exec(str);
         
         while (result != null) {
             trace ( result.index, "\t", result);
             result = myPattern.exec(str);
         }
         

이 코드의 출력 결과는 다음과 같습니다.


            0      She,,e
            10     seashells,sea,ells
            27     seashore,sea,ore
         

test

()메서드 
AS3 function test(str:String):Boolean

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

지정된 문자열 str에서 일반 표현식이 일치하는지 테스트합니다.

일반 표현식에 g(global) 플래그를 설정하지 않은 경우 문자열의 시작 부분(인덱스 위치 0)에서 검색이 시작되며 일반 표현식의 lastIndex 속성은 무시됩니다.

일반 표현식에 g(global) 플래그를 설정한 경우 일반 표현식의 lastIndex 속성에 지정된 인덱스 위치에서 검색이 시작됩니다. 검색에서 하위 문자열이 일치하면 lastIndex 속성이 일치 부분의 끝 위치에 맞게 변경됩니다.

매개 변수

str:String — 테스트할 문자열입니다.

반환값
Boolean — 일치하는 부분이 있으면 true이고, 그렇지 않으면 false입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 g(global) 플래그가 설정되어 있는 일반 표현식에 test() 메서드를 사용하는 방법을 보여 줍니다.
var re1:RegExp = /\w/g;
var str:String = "a b c";
trace (re1.lastIndex); // 0
trace (re1.test(str)); // true
trace (re1.lastIndex); // 1
trace (re1.test(str)); // true
trace (re1.lastIndex); // 3
trace (re1.test(str)); // true
trace (re1.lastIndex); // 5
trace (re1.test(str)); // false
RegExpExample.as

다음 예제에서는 전달된 문자열을 기반으로 일반 표현식을 사용하여 문자열을 파싱하고 새 문자열 또는 부울 값을 반환하는 방법을 보여 줍니다. informalizeGreeting() 메서드는 대/소문자를 구분하지 않고 HelloHi로 바꿉니다. 또한 이 메서드는 문자열의 이름이 지정된 패턴과 일치하는 경우 해당 이름에서 성을 제거합니다. validateEmail()validatePhoneNumber() 메서드는 전달된 문자열을 검사하여 패턴이 유효한 전자 메일 주소 또는 특정 전화 번호 패턴과 일치하는지 확인하고 결과에 따라 부울 값을 반환합니다.
package {
    import flash.display.Sprite;

    public class RegExpExample extends Sprite {        
        public function RegExpExample() {            
            var formalGreeting:String = "Hello, John Smith.";
            trace(informalizeGreeting(formalGreeting));    // Hi, John.

            var validEmail:String = "name@domain.com";
            trace(validateEmail(validEmail));        // true
            
            var invalidEmail:String = "foo";
            trace(validateEmail(invalidEmail));  // false
            
            var validPhoneNumber:String = "415-555-1212";
            trace(validatePhoneNumber(validPhoneNumber));    // true
            
            var invalidPhoneNumber:String = "312-867-530999";
            trace(validatePhoneNumber(invalidPhoneNumber));  // false
        }
        private function informalizeGreeting(str:String):String {
            var pattern:RegExp = new RegExp("hello, (\\w+) \\w+", "i");
            return str.replace(pattern, "Hi, $1");
        }
        private function validateEmail(str:String):Boolean {
            var pattern:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/;
            var result:Object = pattern.exec(str);
            if(result == null) {
                return false;
            }
            return true;
        }
        private function validatePhoneNumber(str:String):Boolean {
            var pattern:RegExp = /^\d{3}-\d{3}-\d{4}$/;
            var result:Object = pattern.exec(str);
            if(result == null) {
                return false;
            }
            return true;
        }
    }
}




[ X ]영어로 표시되는 이유
ActionScript 3.0 참조 설명서의 내용이 영어로 나타납니다.

ActionScript 3.0 참조 설명서 중 일부는 전체 언어로 번역되지 않았습니다. 언어 요소가 번역되지 않은 경우 영어로 나타납니다. 예를 들어 ga.controls.HelpBox 클래스는 어떤 언어로도 번역되지 않았습니다. 그러므로 한국어 버전의 참조 설명서에서 ga.controls.HelpBox 클래스는 영어로 나타납니다.