트위터나 인스타그램 데이터에서 #으로 시작하는 해시태그만 뽑아내고 싶다.
기본 패턴
#[a-zA-Z가-힣0-9_]+ 이 패턴은 #으로 시작하는 영문, 한글, 숫자, 언더스코어 조합을 찾는다. 정규표현식 테스터에서 #맛집 #서울카페 추천합니다를 테스트해보자.
여러 개 추출
g 플래그로 전체를 검색하면 모든 해시태그가 나온다. 텍스트 하나에 해시태그가 여러 개 있을 수 있으니까.
이모지 처리
해시태그에 이모지가 포함될 수도 있다. 그건 유니코드 범위를 추가해야 하는데 복잡해진다. 일단 기본 패턴으로 시작하고 필요하면 확장하자. 테스터로 실제 데이터를 넣어보면 어떤 패턴이 필요한지 알 수 있다.
플래그 조합 활용
g, i, m 플래그를 상황에 맞게 조합해서 쓰면 더 유연하게 매칭할 수 있다. 대소문자 구분 없이 전역 검색하려면 gi를 쓰고, 여러 줄 처리가 필요하면 m을 추가하자. 정규표현식 테스터에서 플래그별 차이를 확인해보자.
캡처 그룹 효율적으로 쓰기
캡처 그룹이 많으면 성능에 영향을 줄 수 있다. 캡처가 필요 없는 그룹은 (?:...)로 비캡처 그룹으로 만들자. 정말 추출해야 하는 부분만 괄호로 감싸면 된다.
정규표현식 라이브러리 활용
자주 쓰는 패턴들은 라이브러리로 만들어져 있다. 이메일, 전화번호, URL 검증 같은 건 이미 검증된 패턴을 가져다 쓰는 게 안전하다. 테스터로 동작을 확인하고 사용하자.
정규표현식 테스터를 적극 활용해서 다양한 패턴을 실험해보자. 실전 경험이 쌓일수록 정규표현식 작성이 수월해진다.