MS Word - 3자리 숫자만 찾기

MS Word - 3자리 숫자만 찾기

3자리 숫자만 있는 모든 숫자를 찾아 삭제해야 하며 1~2자리 및 4자리 이상의 숫자는 무시해야 합니다(도움이 되는 경우 세 번째 숫자 뒤에는 공백 없이 텍스트가 옵니다(예: "457text"). 어떤 도움에도 진심으로 감사드립니다!!!

답변1

와일드카드 찾기 및 바꾸기를 사용하여 Word에서(스크립팅이 아닌) 이 작업을 수행할 수 있습니다. 3자리 숫자 뒤에 항상 문자가 오는 경우:

여기에 이미지 설명을 입력하세요

또는 임의의 문자(예: 구두점)를 허용하려면 변형을 사용하여 숫자인 네 번째 문자를 제외할 수 있습니다.

여기에 이미지 설명을 입력하세요

두 예 모두에서 찾을 내용 섹션에서 둥근 괄호는 부분을 나타냅니다. 첫 번째 부분으로 "단어" 시작 부분의 3자리 숫자를 찾고, 다음 문자가 문자인 부분, 즉 두 번째 부분만 찾고 싶습니다. 우리가 지키고 싶은 부분.

\2로 바꾸기는 발견된 텍스트(예: 123A)를 "A" 부분("찾기" 결과의 일부가 아니라 변경되지 않은 나머지 텍스트)으로 "바꾸는 것"을 의미합니다.

<는 단어의 시작을 의미합니다. 즉, 3자리 숫자가 단어 시작 부분에 있기를 원하지만 긴 시퀀스 중간에 3자리 숫자를 선택하고 싶지는 않습니다(예: 그 안에서 345를 찾지 못해 12345를 무시합니다).

대괄호는 문자 범위이므로 [0-9]는 0부터 9까지의 숫자를 의미하고 {3}은 해당 문자 중 3개의 시퀀스를 의미합니다. [A-Za-z]는 소문자 또는 대문자를 의미합니다. [!0-9]를 사용한 대체 옵션은 숫자 0에서 9까지(!가 아님)를 제외한 모든 것을 찾습니다.

답변2

예, VBA 스크립트를 사용하여 이 작업을 수행할 수 있습니다. VBA 편집기를 열려면 Alt + F11을 동시에 누르십시오. VBA 편집기에 다음 코드를 입력하십시오.

Sub RegexReplace()

    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")    
    On Error Resume Next

    RegEx.Global = True
    RegEx.Pattern = InputBox("[0-9][0-9][0-9]")
    ActiveDocument.Range = _ 
    RegEx.Replace(ActiveDocument.Range, InputBox(""))        

End Sub

관련 정보