MS Word 문서에서 패턴을 검색하는 방법이 있습니까?


30

정확히 일치하는 대신 MS Word 문서 내에서 패턴을 찾는 방법이 있습니까?

모든 소수점이 /대신 작성된 문서 가 .있습니다. 예를 들어 페르시아어 타이포그래피는 소수점 대신을 사용하기 때문에로 표기 1.02되었습니다 .1/02/.

으로는 /단지 소수에 사용되지 않고, 같은 패턴을 찾을 수있는 방법이 등 예를 들어, 분수, 백분율, 다른 응용 프로그램을,이 N/M경우, 워드 문서 내에서는 N소수점을 표시하고 M또 다른 진수를 보여줍니다?


2
수퍼 유저가 출시 된 후 5 년이 지나면 어떻게 중복되지 않습니까?
피터 Mortensen


중간에 다른 텍스트가 있으면 메모장으로 옮기기가 어려울 것입니다. 저널 기사를 쓰고 있다고 가정하십시오 (대신 라텍스를 사용하십시오). 다른 모든 서식을 잃어 버릴 것입니다.
Charm_quark

1
방금 확인했습니다. 최신 MS Word 버전은 Word 문서 (* .docx)를 압축 XML 기반 문서로 저장합니다. 이 구조가 어떻게 작동하는지 알게되면 * .docx 파일의 압축을 풀고 결과 XML 파일 구조에서 패턴 일치를 수행 할 수 있습니다.
Dominique

재미있는 @Dominique. 몰랐어요
codezombie

답변:


12

단어 문서 내에서 'N / M'과 같이 N은 10 진수를 나타내며 M은 다른 10 진수를 나타냅니다.

검색 ^#/^#의 경우 검색 매개 변수로 사용할 수 있습니다 . 더 많은 옵션 아래에서 Special을 찾으면 도움이 될 수있는 다른 옵션이 있습니다.

Nb : ^#는 소수점 이하 자릿수이므로 x / yy를 구체적으로 찾고 있다면 ^#/^#^#등 이됩니다 .

교체,

이 방법이 더 나은 옵션입니다.로 검색 ([0-9])/([0-9])하고로 바꾸고 \1.\2"와일드 카드 사용"을 활성화하십시오.


감사. 이것은 적중을 찾습니다. 그러나 Word는 교체 부품으로 ^ #. ^ #을 허용하지 않습니다. '/'를 둘러싼 숫자를 그대로두고 '/'를 '.'로 바꾸고 싶습니다.
codezombie

1
"([0-9]) / ([0-9])"로 검색을 시도하고 "\ 1. \ 2"로 바꾸고 큰 따옴표를 사용하십시오. "와일드 카드 사용"활성화
Charm_quark

37

워드

Microsoft의 정규식 구현 사용

눌러 CTRL+ H»를 클릭 활성화» 사용 와일드 카드를

  • 무엇을 찾다: ([0-9]{1,2})/([0-9]{2})
  • 다음으로 교체하십시오. \1.\2

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

이것은 미친 검색 패턴처럼 보이므로 살펴 보자.

  • [0-9] 단일 숫자 값 (0,1,2,3,4,5,6,7,8 및 9)을 나타냅니다.
  • {1,2}이전 문자 또는 표현식의 발생 횟수를 계산하는 데 사용됩니다. 우리의 경우 이것은 다음을 의미합니다. 하나 또는 두 개의 숫자 만 검색합니다 .

    주의 : 독일어 단어를 사용하는 경우 ;대신 구분 기호 로 사용해야합니다,

  • /특별한 의미가 없습니다. 말 그대로 슬래시를 검색합니다.
  • ()둥근 괄호가 중요합니다. 우리가 나중에 사용할 수 있도록 그들은 논리적 순서로 패턴을 분할 \1, \2... \n우리의 대체 패턴입니다. 이런 식으로 우리는 가치를 보존합니다

Microsoft의 지원 문서 또는 Graham Mayor 's Word 사이트 의 표현, 조각별로 섹션을 더 읽으십시오.


VBA (더 나은 솔루션)

다른 RegEx 엔진의 기본값을 더 준수하는 VBA 방법을 사용하는 것이 좋습니다. 그들은 더 잘 문서화 되고 더 많은 사람들이 당신을 도울 수 있습니다.

이 매크로는 전체 문서를 검색하여 지정된 문자열로 대체 할 RegEx 패턴을 요청합니다.

ALT+ F11를 눌러 VBA 편집기를 엽니 다. 코드를 어디에나 붙여넣고F5

Sub RegexReplace()

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

    RegEx.Global = True
    RegEx.Pattern = InputBox("Find what:")
    ActiveDocument.Range = _ 
        RegEx.Replace(ActiveDocument.Range, InputBox("Replace with:"))        

End Sub
  • 무엇을 찾다: (?!\d)/(?=\d)
  • 다음으로 교체하십시오. .

여기에 이미지 설명을 입력하십시오여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.