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;
}
}