본문 바로가기
TextKit

텍스트 추출 (이메일 · URL · 숫자)

뒤섞인 글에서 원하는 조각만 뽑아 정리합니다

글자 0단어 0 0

입력한 글은 브라우저 밖으로 나가지 않습니다.

결과

뽑아낸 조각이 여기에 표시됩니다.

‘검증’이 아니라 ‘추출’이다

이 도구는 뒤섞인 글에서 원하는 조각만 걷어냅니다. 고객 문의 로그에서 이메일만, 회의록에서 링크만, 주문서에서 전화번호만 — 나머지 문장은 버리고 필요한 것만 모읍니다. 손으로 하나씩 긁어 복사하던 일을 한 번에 끝내는 게 목적입니다.

중요한 구분이 하나 있습니다. 이건 검증기가 아니라 추출기입니다. 이메일 주소가 진짜 규격에 맞는지 심사하는 게 아니라, 글 속에서 ‘이메일처럼 생긴 것’을 찾아냅니다. 왜 이 구분이 중요할까요? 이메일 표준(RFC 5322)은 놀랄 만큼 복잡해서, 그걸 곧이곧대로 검사하면 멀쩡한 주소를 놓치거나정규식이 감당 못 할 만큼 비대해집니다. 실무에서 원하는 건 “이 글에 들어 있는 연락처를 다 모아 줘”지, “이게 국제 표준에 부합하는가”가 아닙니다.

패턴이 어디까지 잡는지

정직하게, 각 종류가 무엇을 잡고 무엇을 놓치는지 밝힙니다.

  • 이메일이름@도메인.최상위 형태. @ 앞부분에 한글은 받지 않습니다(오탐 방지). a@b.co.kr 같은 다단계 도메인도 잡습니다.
  • URLhttp://, https://, 또는 www.로 시작하는 것. 뒤에 딸려온 마침표·닫는 괄호는 떼어내고, 쿼리 문자열(?a=1)은 살립니다.
  • 숫자 — 정수·소수·천 단위 콤마(1,234.5)·음수. 전화번호처럼 하이픈으로 이어진 것은 조각조각 잡히므로, 전화번호는 전용 종류를 쓰세요.
  • 해시태그·멘션 — 해시태그는 한글·숫자·밑줄까지(#여행), 멘션은 영문·숫자·밑줄(@user_1). SNS 계정이 대부분 영문이라 그렇습니다.
  • 전화번호 — 한국식(휴대폰·지역번호). 대략적이라 다른 숫자열이 함께 걸릴 수 있으니, 뽑은 뒤 한 번 훑어보세요.

패턴은 ‘완벽한 문법’이 아니라 ‘실용적인 그물’입니다. 너무 촘촘하면 정상값을 놓치고, 너무 성기면 쓰레기가 딸려 옵니다. 그 사이에서 흔한 형태를 넉넉히 잡는 쪽으로 맞췄고, 어디서 헐거운지는 위에 적어 두었습니다.

뽑은 뒤의 정리가 도구의 절반이다

조각을 뽑아내는 것만으로는 반쪽짜리입니다. 게시글에서 이메일을 뽑으면 같은 주소가 수십 번 나오고, 그대로는 발송 명단으로 쓸 수 없습니다. 그래서 추출과 같은 자리에서 정리까지 합니다.

  • 중복 제거 — 같은 값은 처음 하나만 남깁니다. 문자열을 Set 으로 처리해constructor 같은 특수한 값이 들어와도 조용히 어긋나지 않습니다.
  • 정렬 — 코드포인트 사전순으로 줄 세워 훑어보기 좋게 만듭니다. 로케일에 기대지 않아 어느 브라우저에서든 같은 순서가 나옵니다.
  • 구분자 — 줄바꿈·쉼표·공백 중에 붙여넣을 곳에 맞춰 고릅니다. 스프레드 시트에는 줄바꿈, 코드에는 쉼표가 편합니다.

이럴 때 씁니다

  • 문의 로그에서 연락처 모으기 — 이메일·전화번호를 뽑아 중복을 걷어내면 바로 명단이 됩니다.
  • 게시글에서 링크만 — 참고 URL을 한 번에 모아 정리합니다.
  • SNS 글 분석 — 해시태그·멘션을 뽑아 어떤 태그가 얼마나 쓰였는지 훑어봅니다.
  • 표에서 숫자만 — 설명이 섞인 텍스트에서 수치만 걷어내 계산에 넘깁니다.

정리하면

  • 검증이 아니라 추출입니다. 흔한 형태를 넉넉히 잡고, 헐거운 곳은 숨기지 않습니다.
  • 정리까지가 한 세트입니다. 중복 제거·정렬·구분자로 바로 쓸 수 있는 목록을 만듭니다.
  • 결과는 한 번 훑어보세요. 특히 전화번호는 대략적 패턴이라 확인이 필요합니다.

자주 묻는 질문

무엇을 뽑아낼 수 있나요?
이메일, URL(링크), 숫자, 해시태그(#), 멘션(@), 한국 전화번호입니다. 붙여넣은 로그·명단·채팅·게시글에서 원하는 종류만 골라 한 번에 모을 수 있습니다. 종류를 고르면 나머지 글자는 버리고 해당 조각만 남깁니다.
이메일 형식이 정말 맞는지 검사하나요?
아닙니다. 이건 검증기가 아니라 추출기입니다. 실제 글에서 흔한 형태를 넉넉히 잡아내되, 이메일 표준(RFC)을 100% 따지지는 않습니다. 표준을 완벽히 검사하면 오히려 정상 주소를 놓치는 일이 많아, 실용적으로 '이메일처럼 생긴 것'을 뽑는 쪽을 택했습니다.
URL 뒤에 붙은 마침표나 괄호는 어떻게 되나요?
떼어냅니다. 문장 끝의 'https://example.com.' 이나 '(https://example.com)' 처럼 딸려온 문장부호는 링크의 일부가 아니므로 자동으로 제거합니다. 다만 URL 안에 정상적으로 들어간 기호(물음표·등호 등 쿼리 문자열)는 그대로 둡니다.
중복 제거와 정렬은 왜 붙어 있나요?
추출의 절반이 뽑은 뒤의 정리이기 때문입니다. 게시글에서 이메일을 뽑으면 같은 주소가 수십 번 나오기 마련이고, 그대로는 명단으로 못 씁니다. 중복 제거로 유일한 값만 남기고, 정렬로 훑어보기 좋게 만듭니다. 구분자(줄바꿈·쉼표·공백)도 붙여넣을 곳에 맞춰 고를 수 있습니다.
한글 이메일이나 한글 멘션도 잡히나요?
이메일의 로컬부(@ 앞)에 한글은 잡지 않습니다. 실무에서 거의 없고 오탐만 늘기 때문입니다. 해시태그는 한글을 포함해 잡지만(#여행), 멘션(@)은 영문·숫자·밑줄만 잡습니다. SNS 계정이 대부분 영문이기 때문입니다.
전화번호가 가끔 잘못 잡혀요.
한국 전화번호(010-1234-5678, 02-123-4567 등)를 대략적인 패턴으로 잡기 때문에, 하이픈으로 이어진 다른 숫자열이 함께 걸릴 수 있습니다. 뽑은 뒤 결과를 훑어보고, 아닌 것은 지우세요. 숫자만 필요하면 '숫자' 종류를 쓰는 편이 정확합니다.
입력한 글이 서버로 전송되나요?
아닙니다. 추출은 전부 브라우저 안에서 끝나고, 입력한 글은 어디로도 전송되거나 저장되지 않습니다.