用于Microsoft Word搜索的正则表达式

时间:2015-04-23 09:19:57

标签: regex image search ms-word field

我正在编辑一本有大量图片的大型图书文档。我在文本中有许多部分,其中的字段与此类似:

{INCLUDEPICTURE  "C:\\book\\NikonD5500\\chapter_1-129.jpg" \d}

我正在尝试运行正则表达式查找和复制,它将在两个大括号{}之间找到任何短语并将其粘贴到其他文档中。理想情况下,我只需要像“chapter_1-129.jpg”这样的图片名称(等等)作为列表。

1 个答案:

答案 0 :(得分:1)

您可以运行一个简单的VBA宏来迭代文档中的所有字段,如下所示:

Option Explicit

Sub ListImageFields()

    Dim oField As Field
    Dim oDocSource As Document
    Dim oDocTarget As Document

    Dim result As String

    For Each oField In ActiveDocument.Fields
        If oField.Type = wdFieldIncludePicture Then
            result = result & GetPictureSourceFromFieldCode(oField.code) & vbCrLf
        End If
    Next

    Set oDocTarget = Documents.Add
    oDocTarget.Range.Text = result

End Sub

Function GetPictureSourceFromFieldCode(ByVal fieldCode As String) As String

    Dim startIndex As Integer
    Dim endIndex As Integer

    startIndex = InStr(fieldCode, """") + 1
    endIndex = InStrRev(fieldCode, """")
    GetPictureSourceFromFieldCode = Mid(fieldCode, startIndex, endIndex - startIndex)

End Function