Word 2010 와일드 카드 검색-ABC.DEF.XYZ 형식의 텍스트 찾기 않습니다 (예 : 3 요소 참조의

ABC.DEF.XYZ 형식으로 Word 2010에서 텍스트를 찾으려고합니다. 이것은 본질적으로 단어 구문으로 작성된 Java 구문을 사용하여 코드 참조를 찾는 것입니다. 3 요소 참조는 예일뿐입니다. 실제 참조는 최소 2 개의 요소와 최대 5 개의 요소를 갖습니다.

나는 이것을 작동시키기 위해 많은 와일드 카드 (와 와일드 카드가 아닌) 조합을 시도했지만 운이 없었습니다. 내가 시도한 것들 중 일부는 다음과 같습니다.

  1. <([a-z0-9A-Z]@)>.<([a-z0-9A-Z]@)>
    참고, 이것은 실제로 2- 요소 참조를 찾기 위해 작동합니다. 더 큰 문자열 내에서 패턴을 찾을 때 맞지 않습니다 (예 : 3 요소 참조의 요소 2와 3 일치)

  2. <([a-z0-9A-Z]@)>(.<([a-z0-9A-Z]@)>)@
    오류가 발생했습니다-유효하지 않은 패턴

  3. <([a-z0-9A-Z]@)>.<([a-z0-9A-Z]@)>.<([a-z0-9A-Z]@)>
    Word가 15 분 이상 중단되어 단일 일치 항목을 찾지 못하는 데 너무 오래 걸렸습니다 (문서는 약 150 페이지의 텍스트이므로 처리하기에는 너무 많은 것일 수 있습니다)

  4. <([a-z0-9A-Z]@)>.<([a-z0-9A-Z]@)>.<([a-z0-9A-Z]@)>.<([a-z0-9A-Z]@)>
    내가 이것을 시도했을 때 실제로 단어가 추락했습니다.

이상적으로는 작동하는 # 2 버전이 이상적이라고 생각하지만 패턴을 유효하게 만드는 방법을 모르겠습니다.

이것이 가능하지 않다면 # 1을 사용하여 모든 것을 잡을 수 있기를 바랍니다 (왜 특정 문자열과 일치하고 다른 문자열과 일치하지 않는지 확실하지 않음).

도움을 주시면 감사하겠습니다.



답변

Word의 와일드 카드 검색 대신 Word의 VBA RegEx 엔진을 사용할 수 있습니다.


좋아, 작업은 다음 패턴을 가진 모든 문자열을 찾는 것이 었습니다.

###.###
###.###.###
###.###.###.###
###.###.###.###.###

내가 만들 수있는 가장 좋은 패턴은

([\w\d]{3}\.){1,4}[\w\d]{3}

노란색으로 표시된 다음 조회수를 반환합니다.

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

패턴 설명

  • \wAz의 단일 문자와 일치합니다. 대소 문자를 구분하지 않습니다
  • \d 숫자 0-9와 일치
  • [\w\d]{3}추천 문자 또는 숫자와 일치 ABC, abc, 123, Ab1-하지만 A$CABCD
  • ([\w\d]{3}\.){1,4}1,2,3 또는 4 개의 그룹과 다음 포인트를 찾습니다 \.. 마지막 그룹 [\w\d]{3}은 다음 사항을 요구하지 않습니다.

VBA 매크로

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

Sub RegExMark()

    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")

    RegEx.Global = True
    RegEx.Pattern = "([\w\d]{3}\.){1,4}[\w\d]{3}"

    Set Matches = RegEx.Execute(ActiveDocument.Range)
    For Each hit In Matches
       Debug.Print hit
       ActiveDocument.Range(hit.FirstIndex, hit.FirstIndex + hit.Length). _
         HighlightColorIndex = wdYellow
    Next hit

End Sub

경고

예제 이미지에서 빨간색으로 표시된 것처럼 현재 패턴에는 결함이 있으며 너무 긴 문자열의 하위 문자열과도 일치합니다. 내가 가진 비트를 연주 \b, [^\.]그리고 \s있지만, 그 이외의 모든 경우에 일했다. 다른 사용자가 유효한 솔루션을 찾을 수 있습니까?

사용 된 자원


답변

메모장 ++에 텍스트를 복사 한 다음 RegEx 옵션을 사용하여 변경하는 것이 좋습니다.

나는 그것이 고통스럽게 들린다는 것을 알고 있지만 일단 익숙해지면 프로그램 사이를 매우 빠르게 이동할 수 있습니다.

RegEx는 메모장 ++의 찾기 / 바꾸기 창의 옵션입니다. 다른 편집자들도 같은 기능을 가지고 있습니다.

이반


답변