10.3.2 그룹(Groups)

10.3.2 그룹(Groups)

일치된 문자열에서 특정 정보를 그룹을 사용해 추출할 수 있습니다. match()true를 반환하면 matched(X) 메서드로 그룹을 얻을 수 있습니다. 여기서 X는 정규 표현식 패턴으로 정의된 그룹 번호입니다:

class Main {
  static function main() {
    var str = "Nicolas is 26 years old";
    var r = ~/([A-Za-z]+) is ([0-9]+) years old/;
    r.match(str);
    trace(r.matched(1)); // "Nicolas"
    trace(r.matched(2)); // "26"
  }
}

그룹 번호는 1부터 시작하며 r.matched(0)은 항상 전체 일치 부분 문자열을 반환합니다.

r.matchedPos()는 원래 문자열에서 이 부분 문자열의 위치를 반환합니다:

class Main {
  static function main() {
    var str = "abcdeeeeefghi";
    var r = ~/e+/;
    r.match(str);
    trace(r.matched(0)); // "eeeee"
    // { pos : 4, len : 5 }
    trace(r.matchedPos());
  }
}

추가로 r.matchedLeft()r.matchedRight()를 사용해 일치된 부분 문자열의 왼쪽과 오른쪽 부분 문자열을 얻을 수 있습니다:

class Main {
  static function main() {
    var r = ~/b/;
    r.match("abc");
    trace(r.matchedLeft()); // a
    trace(r.matched(0)); // b
    trace(r.matchedRight()); // c
  }
}

출처: Groups

더 알아보기