본문 바로가기
TextKit

텍스트 찾기 · 바꾸기 (정규식 지원)

여러 줄에서 문자열·패턴을 한 번에 치환합니다

글자 그대로 찾습니다

비우면 삭제됩니다

글자 0단어 0 0

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

결과

바뀐 글이 여기에 표시됩니다.

왜 ‘문자 그대로’가 기본이어야 할까

찾아 바꾸기는 누구나 아는 기능이지만, 온라인 도구 중에는 조용히 사고를 내는 것이 많습니다. 원인은 대부분 하나 — 입력한 글자를 정규식으로 넘겨 버리는 것입니다. 정규식에서는 몇몇 기호가 특별한 뜻을 갖습니다. 마침표(.)는 ‘아무 글자나’, 별표(*)는 ‘앞 것의 반복’, 괄호는 ‘묶음’입니다.

그래서 순진하게 만든 도구에서 “3.14”를 찾으면, 마침표가 ‘아무 글자나’로 해석되어 “3x14”, “3-14” 까지 함께 바뀝니다. 사용자는 단어 하나 고치려 했는데 문서 곳곳이 망가지는 것이죠.

찾을 말: 3.14

순진한 도구  →  3.14, 3x14, 3-14 …  ('.' 이 아무 글자나)
이 도구      →  3.14 만              ('.' 을 글자 그대로)

이 도구는 문자 그대로 모드를 기본으로 두고, 그 안에서 정규식 특수문자를 자동으로 이스케이프합니다. 정규식을 아는 사람만 스위치를 켜서 패턴의 힘을 씁니다. 힘이 필요 없는 다수를 함정에서 지키는 게 우선이라고 봤습니다.

바꿀 말의 ‘$’도 함정이다

찾을 말만 문제가 아닙니다. 치환 문자열에서도 ‘$’ 는 특별한 뜻을 갖습니다 — $1 은 ‘찾은 것 중 첫 번째 묶음’, $&는 ‘찾은 것 전체’입니다. 그래서 가격 “$100” 을 넣으려다 결과가 엉뚱하게 나오는 일이 생깁니다.

이 도구는 문자 그대로 모드에서 ‘$’를 자동으로 보호해 입력한 그대로 넣습니다. 반대로 정규식 모드에서는 $1 을 일부러 살려, 날짜 형식을 바꾸는 것 같은 일을 할 수 있게 합니다.

정규식:  (\d{4})-(\d{2})-(\d{2})
바꿀 말: $1/$2/$3

2024-01-02  →  2024/01/02

정규식이 실제로 빛나는 순간

정규식은 ‘정확한 글자’가 아니라 ‘패턴’을 찾을 때 필요합니다. 자주 쓰는 것 몇 가지만 알아도 충분합니다.

  • 연속 공백을 하나로 — 찾을 말 +(공백과 +), 바꿀 말 공백 하나. 붙여넣기로 생긴 들쭉날쭉한 공백을 정리합니다.
  • 줄마다 접두어 붙이기 — 찾을 말 ^(줄 시작), 바꿀 말 “- ”, 여러 줄 옵션 켜기. 목록을 마크다운 불릿으로 만듭니다.
  • 숫자만 지우기 — 찾을 말 \d+, 바꿀 말 비우기.
  • 형식 바꾸기 — 위의 날짜 예시처럼 $1 로 찾은 조각을 다시 배치합니다.

여러 줄을 통째로 다룬다

브라우저 주소창이나 단순 입력칸과 달리, 이 도구는 붙여넣은 문서 전체를 한 번에 처리합니다. 그래서 수백 줄에서 특정 단어를 모두 바꾸거나, 각 줄의 앞뒤를 손보는 일에 맞습니다. 결과는 바뀐 횟수와 함께 보여 주므로, 예상한 만큼 바뀌었는지 눈으로 확인하고 복사하면 됩니다.

한 가지만 기억하세요 — ‘단어 단위’는 영문 기준입니다. 단어 경계(\b)가 영문·숫자·밑줄로 정의되어 한글 사이에서는 걸리지 않습니다. 한글에서 낱말을 구분해 바꾸려면 앞뒤 공백을 찾을 말에 넣거나 정규식을 쓰세요.

정리하면

  • 기본은 문자 그대로. 특수문자를 자동으로 이스케이프해 입력한 글자만 정확히 찾습니다.
  • 정규식은 스위치로. 패턴 검색과 $1 되참조가 필요할 때만 켜세요. 틀린 정규식은 오류로 알려 주고 원문을 지킵니다.
  • 단어 단위는 영문용. 한글에는 공백이나 정규식을 쓰세요.

자주 묻는 질문

정규식을 몰라도 쓸 수 있나요?
네. 기본은 '문자 그대로 찾기'라, 찾을 말과 바꿀 말을 그냥 입력하면 됩니다. 정규식 스위치를 켰을 때만 패턴으로 해석합니다. 문자 그대로 모드에서는 마침표·괄호 같은 기호도 그냥 그 글자로 찾으니 안심하고 쓰세요.
'3.14'를 찾았더니 엉뚱한 것도 바뀌지 않나요?
문자 그대로 모드에서는 안 그렇습니다. 정규식에서 마침표(.)는 '아무 글자나'를 뜻하지만, 이 도구는 문자 그대로 모드에서 그런 특수문자를 자동으로 이스케이프해 글자 그대로 찾습니다. 그래서 '3.14'는 '3x14'에 걸리지 않고 정확히 '3.14'만 찾습니다.
바꿀 말에 $ 기호를 넣으면 이상해집니다.
문자 그대로 모드에서는 이상해지지 않습니다. 프로그래밍에서 $1, $& 는 특수한 뜻이 있어서, 순진하게 처리하면 '$100'이 깨질 수 있습니다. 이 도구는 문자 그대로 모드에서 $ 를 자동으로 보호해 입력한 그대로 넣습니다. 반대로 정규식 모드에서는 $1(첫 번째 그룹)을 일부러 살립니다.
'단어 단위'가 한글에는 안 걸려요.
맞습니다. 단어 단위는 단어 경계(\b)를 이용하는데, 이 경계는 영문·숫자·밑줄을 기준으로 정의되어 한글 사이에서는 잡히지 않습니다. 영문 코드에서 'cat'을 'category'와 구분해 바꿀 때는 유용하지만, 한글에서는 단어 단위 대신 앞뒤 공백을 찾을 말에 포함하거나 정규식을 쓰세요.
정규식이 틀리면 어떻게 되나요?
화면이 죽지 않고, 무엇이 잘못됐는지 메시지로 알려 줍니다. 예를 들어 괄호를 안 닫으면 오류를 표시하고 원문은 그대로 둡니다. 고쳐서 유효한 정규식이 되는 순간 다시 동작합니다.
입력한 글이 서버로 전송되나요?
아닙니다. 찾기·바꾸기는 전부 브라우저 안에서 끝나고, 입력한 글은 어디로도 전송되거나 저장되지 않습니다.