export class RegexUtil {

    //======================================================================================
    /** 원본 문자열에서 정규식 패턴 매칭하여 결과를 배열로 리턴 (그룹 캡쳐 가능)
     *  @param source 원본 문자열
     *  @param pattern 정규식 패턴 - 글로벌 플래그( /.../g ) 사용
     *  @param groupIdx 그룹 캡쳐링을 사용하는 경우, 그룹 번호(0=전체, 1=첫 번째 그룹, ...)
    *///====================================================================================
    public static MatchAll(source: string, pattern: RegExp, groupIdx: number = 0) {
				const resIter = source.matchAll(pattern);
        return [...resIter].map((v) => v[groupIdx]);
    }

    //======================================================================================
    /** MatchAll - ES2019 이전 버전 호환
    *///====================================================================================
    public static MatchAll2(origin: string, pattern: RegExp, groupIdx: number = 0) {
        const results: string[] = [];
        let mf: any = null;
        while((mf = pattern.exec(origin)) !== null) {
            results.push(mf[groupIdx]);
        }
        return results;
    }
}