【问题标题】:Regex for a Microsoft Word search用于 Microsoft Word 搜索的正则表达式
【发布时间】:2015-04-23 09:19:56
【问题描述】:
我正在编辑一个包含大量图片的大型书籍文档。我在文本中有许多部分的字段类似于:
{INCLUDEPICTURE "C:\\book\\NikonD5500\\chapter_1-129.jpg" \d}
我正在尝试运行正则表达式查找和复制,它将找到两个大括号 {} 之间的任何短语并将其粘贴到其他文档中。理想情况下,我只需要像“chapter_1-129.jpg”(等等)这样的图片名称作为列表。
【问题讨论】:
标签:
regex
image
search
ms-word
field
【解决方案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