유튜브 URL 형식이 여러 가지다. watch?v=, youtu.be/, embed/ 등. 여기서 11자리 동영상 ID를 뽑아야 한다.
다양한 URL 형식
youtube.com/watch?v=dQw4w9WgXcQ, youtu.be/dQw4w9WgXcQ, youtube.com/embed/dQw4w9WgXcQ 전부 같은 동영상이다.
통합 패턴
(?:youtube.com/(?:watch?v=|embed/)|youtu.be/)([a-zA-Z0-9_-]{11}) 이 패턴으로 세 형식 다 잡을 수 있다. 정규표현식 테스터에서 여러 URL을 테스트해보자.
그룹으로 ID 추출
괄호 안이 동영상 ID다. 11자리 영숫자와 하이픈, 언더스코어. 테스터의 그룹 결과를 보면 ID만 따로 나온다.
플래그 조합 활용
g, i, m 플래그를 상황에 맞게 조합해서 쓰면 더 유연하게 매칭할 수 있다. 대소문자 구분 없이 전역 검색하려면 gi를 쓰고, 여러 줄 처리가 필요하면 m을 추가하자. 정규표현식 테스터에서 플래그별 차이를 확인해보자.
캡처 그룹 효율적으로 쓰기
캡처 그룹이 많으면 성능에 영향을 줄 수 있다. 캡처가 필요 없는 그룹은 (?:...)로 비캡처 그룹으로 만들자. 정말 추출해야 하는 부분만 괄호로 감싸면 된다.
정규표현식 라이브러리 활용
자주 쓰는 패턴들은 라이브러리로 만들어져 있다. 이메일, 전화번호, URL 검증 같은 건 이미 검증된 패턴을 가져다 쓰는 게 안전하다. 테스터로 동작을 확인하고 사용하자.
정규표현식 테스터에서 실시간으로 패턴을 테스트하고 결과를 확인하면서 학습하면 정규표현식 실력이 빠르게 늘어난다.