
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