본문 바로가기

홈/편집·보기

패턴으로 찾기, 바꾸기 ① 패턴 검색 개요

찾기, 바꾸기를 할 때 참고사항

  • ○ 이 포스트는 [일반 텍스트 찾기, 바꾸기], [패턴으로 찾기, 바꾸기]를 위한 예시입니다. 대화상자나 옵션 설정 방법은 해당 포스트를 참고하기 바랍니다.
  • 역슬래시 \는 맑은 고딕 등 일부 한글 글꼴에서 원화 기호 ₩로 표시됩니다. 이 포스트를 Windows에서 볼 때는 역슬래시 \\로 표시됩니다.
  • ○ 모두 바꾸기(A)로 일괄변경하면 예상하지 못하게 바뀌는 것이 꼭 있고, 패턴 검색으로 모두 바꾸기를 하면 워드 프로그램이 다운되기도 합니다. 번거롭더라도 바꾸기(Alt+R)을 눌러 하나씩 넘겨가며 확인하는 것이 좋습니다.
  • ○ 각주, 메모를 포함한 문서 전체에서 찾아 바꾸기를 하기 위해서는 본문 시작 부분에서 검색 방향을 '문서 전체'로 하고 찾아야 합니다. 찾아 바꾸기가 중간에 끊기거나 검색 방향을 '아래쪽으로'로 하면 각주나 메모를 누락할 수 있습니다[2.3.2 텍스트를 누락하지 않고 찾아 바꾸는 방법].
  • ○ 변경 추적을 켜 놓은 상태에서 패턴 일치(와일드카드) 사용(U) 기능을 사용하면 오류가 발생합니다. 패턴으로 검색할 때는 변경 추적 기능을 꺼 놓아야 합니다.

1. 패턴으로 찾기 및 바꾸기

홈 탭 > 편집 그룹 > 바꾸기(또는 Ctrl+H)로 [찾기 및 바꾸기 대화상자]를 열어 텍스트를 찾거나 다른 텍스트로 바꿀 수 있습니다. 이 대화상자의 검색 옵션 중 패턴 일치(와일드카드) 사용(U)(Use wildcards)을 체크하면 정규표현식과 같이 패턴으로 텍스트를 찾거나 바꿀 수 있습니다.

※ 워드 영어 버전의 용어는 와일드카드(wildcard)이지만, 기본 문법은 정규표현식이고 한국어 버전의 용어인 '패턴'이 직관적으로 이해하기 쉽습니다. 여기서는 '패턴'으로 쓰겠습니다. 그러나 영미권에서는 주로 wildcard로 표현하기 때문에 Google에서는 'word regex'나 'word pattern'이 아닌 'word (find replace) wildcards'로 검색하는 것을 추천합니다.

[1.A] 대화상자의 패턴 일치(와일드카드) 사용(U)를 체크하면 패턴으로 텍스트를 찾을 수 있습니다.

정규표현식(regular expression; regex)은 문자열을 일정한 패턴으로 표시하는 것으로서, 텍스트를 추출할 때 사용합니다. 가령 문서에서 "20xx. xx. xx."과 같은 형식의 날짜를 찾을 때 숫자를 일일이 넘겨 가며 찾는 것이 아니라 "숫자 4개 + 마침표 + 공백 + 숫자 1~2개 + 마침표 + 공백 + 숫자 1~2개 + 마침표 + 공백"의 패턴인 \d{4}\. \d{1,2}\. \d{1,2}\.으로 검색하는 것입니다.

워드의 찾기 및 바꾸기는 정규표현식을 일부 변형한 패턴 검색 기능을 제공합니다. 한/글도 '조건식'이라는 이름으로 유사한 기능을 제공하고, Adobe InDesign은 GREP에 매우 다양한 서식 기호나 문자를 검색할 수 있습니다.

2. 워드의 패턴

2.1 기본 표현식 - 정규표현식과 비교

워드 패턴의 기존 문법은 정규표현식을 따릅니다. \를 붙여 이스케이프하거나 범위 […], 그룹 (…), 반복 {n,m} 등을 쓰는 방법은 정규표현식과 동일합니다. 다만 정규표현식에 더하여 DOS, Unix의 와일드카드 ?, *를 그대로 쓰거나 서식 기호나 특수문자는 캐럿 기호 ^를 붙여 표현하기도 합니다.

워드의 패턴은 정규표현식과 똑같지도 않고 그렇다고 많이 다른 것이 아니어서 상당히 헷갈립니다. 가령 정규표현식의 .(줄 바꿈 제외 모든 문자)는 워드 패턴에서 그냥 문자에 불과하고, 워드 패턴에서는 . 대신 와일드카드 ?를 쓸 수 있지만 ?는 줄 바꿈을 포함합니다. 또한 워드가 패턴을 찾는 범위는 greedy하지 않고 정규표현식의 일부 기능은 쓸 수 없기 때문에 정규표현식의 패턴을 그대로 옮겨 오면 잘 안 맞을 수 있습니다.

정규표현식과 혼동되기 때문에 워드 패턴 표현을 굳이 외우기보다는 그냥 [찾기 및 바꾸기 대화상자]의 옵션(E)를 눌러 나오는 목록에서 찾아서 입력하는 것이 낫습니다.

[2.1.A] 워드 패턴의 메타문자는 [대화상자]의 목록에서 찾아 확인하면 됩니다.

다만 [대화상자]의 목록은 설명이 너무 간략하여 정규표현식과 같은 것으로 혼동할 수 있습니다. 워드 패턴 표현식을 정규표현식의 차이는 다음을 참고하기 바랍니다.

  정규표현식 워드 패턴 비고
문자(문장 부호 및 공백 포함) 1개 . ? 단락 나누기 ↵까지 포함한 모든 문자
문자(문장 부호 및 공백 포함) 0개 이상 .* * '앞의 문자 0개 이상'이 아닌 '아무개 문자 0개 이상'
1개 이상의 글자 + @ 앞의 문자 1개 이상
숫자 \d [0-9]  
숫자가 아닌 것 \D [!0-9]  
알파벳 [a-zA-Z] [a-zA-Z]  
공백문자 \s [ ^9-^13] 정규표현식의 \t\n\r\f\v를 워드 캐럿 코드로 옮긴 것
공백문자가 아닌 것 \S [! ^9-^13]  
알파벳, 숫자, 밑줄 \w [a-zA-Z0-9_]  
알파벳, 숫자, 밑줄이 아닌 것 \W [!a-zA-Z0-9_]  
한글 [가-힣] [가-힣] 한글 음절 블럭의 시작(가)부터 끝(힣)까지의 문자 집합
한자 [一-龥] [一-龥] 한중일 통합한자 블럭의 시작(一)부터 끝(龥)까지의 문자 집합
범위 […]
[  -  ]
[]
[  -  ]
 
해당하지 않는 글자 [^…] [!]  
그룹 지정 (…) ()  
패턴과 일치한 텍스트(전부) $0 ^&  
패턴과 일치한 텍스트(그룹) $1 $2 … \1 \2  
앞 문자를 n회 반복 {n} {n} {,m}은 오류가 발생하므로 {1,m}처럼 최솟값 명시해야 함
앞 문자를 n회 이상 m회 이하 반복 {n,m} {n,m}
앞 문자를 n회 이상 반복 {n,} {n,}
문자열의 처음 ^… (없음) 워드 패턴의 시작과 끝 문법은 대상문자열(=워드의 문서 전체)이 아닌 공백으로 나누어진 단어를 기준으로 함
문자열의 끝 …$ (없음)
단어의 시작 (없음) <
단어의 끝 (없음) >
또는 …|… (없음)  
클립보드 내용   ^c  

2.2 서식 기호

2.2.1 서식 기호, 특수문자의 캐럿 코드

일반 텍스트 검색에서 대화상자에 입력하기 어려운 서식 기호, 특수문자는 캐럿 기호 ^를 붙여 표현하는 방법을 제공하고 있습니다[찾기, 바꾸기 2.6 서식기호, 특수문자 입력하기]. 그런데 이 중 일부는 패턴 검색에서는 작동하지 않습니다. 대신하여 패턴 검색에서는 캐럿 기호에 코드 번호를 붙여 사용할 수 있습니다.

서식기호, 특수문자 캐럿 기호 비고
탭 문자 ^t 또는 ^9  
단락 나누기 ^13 Enter로 입력하는 단락 나누기
사용자 지정 줄 바꿈 ^l 또는 ^11 Shift+Enter로 입력하는 줄 바꿈[서식기호(편집기호) 4.1.1 단락 기호 ↵와 줄 바꿈 ↓] ※ L의 소문자
사용자 지정 페이지 나누기 ^m 또는 ^12 Ctrl+Enter로 입력하는 페이지 나누기
구역 나누기 ^12 [구역 나누기 2. 구역 나누기 설정 및 편집] 참고
단 나누기 ^n 또는 ^14  
각주 표시 ^2  
미주 표시 ^2  
필드 ^19 필드코드
캐럿 기호 ^^ 또는 ^94 캐럿 기호 ^ 문자를 의미
그래픽 ^g 도형, 사진

2.2.2 10진법 코드 번호 붙여 캐럿 코드 만들기

워드 패턴에서 캐럿 기호 ^는 정규표현식의 \와 유사한 기능을 수행합니다. 가령 'a'는 정규표현식에서 16진법으로 \u0061 또는 \x61로 표현하지만, 워드에서는 캐럿 기호 ^에 10진법으로 변환한 코드 번호 97을 붙여 ^97(10진법)로 표현할 수 있습니다.

단락 나누기는 패턴 검색에서 원래의 캐럿 코드인 ^p를 사용할 수 없지만 Carriage Return인 0x0D(=13)의 13을 붙여 ^13으로 표현할 수 있습니다. 그 이외에 원래의 캐럿 코드를 사용할 수 없는 구역 나누기, 각주 표시 등도 제어 문자(Control character)의 코드를 붙여 사용할 수 있습니다.

※ 캐럿에 코드 번호를 붙여 캐럿 코드를 만드는 것은 확장ASCII 범위인 255(0xFF)까지입니다. 그리고 128부터 255까지는 ^0128처럼 코드 번호 앞에 0을 붙여야 합니다.

2.3 일반 텍스트 검색과의 캐럿 코드 비교

패턴 검색에서 사용하는 캐럿 코드는 일반 텍스트 검색에서 사용하는 것과 다릅니다. 상세한 비교는 [찾기, 바꾸기의 캐럿 코드]를 참고하기 바랍니다.

※ 참고 사이트

 

Finding and replacing characters using wildcards

Finding and replacing characters using wildcards Article contributed by Graham Mayor, with thanks also to Klaus Linke Contents Overview Wildcards are like the blank pieces in Scrabble, or like the Jokers you can use in some card games to stand in for any c

wordmvp.com

 

최초 게시: 2023. 2. 27.