MS Word,使用通配符查找
MS Word, Find with wildcard
首先,我对 VBA 完全没有经验。现在我正在做一个项目,我需要在 200 MS word 文件中找到一些单词。这些词以 space
开头并以 :
(冒号)
结尾
例如:
... frauuaṣ̌īmca。 yz:; yeŋ́h/ē.: hātąm; yaθā.:啊。 vairii/ō; ...
我需要提取 yz & yeŋ́h/ē。和 yaθā.
我无法为 select 写任何正确的通配符,只是 :
之前的最后一个字(冒号)
MS Word 查找第一个和第二个之间的所有内容:
我尝试了 [!space]?:
但并不总是 return 的正确答案。
例如在这种情况下,只是 return / 或特殊字符之后的所有内容。
派蒂。 ratīm;; frauuarane:; hāuuanə̄/e:; sāuuaŋhə̄e:; raθβ±m:; y/aθā。啊。
=> ne 代替 frauuarāne,或 /e 代替 hāuuanə̄/e
谢谢
有几种方法可以做到这一点...因为我不知道RegEx,所以我还是选择了VBA;
Sub ExtractWords()
Dim myArray, x, strOut As String
myArray = Split(ActiveDocument.Content, " ") 'split doc into array by space
For Each x In myArray
If InStr(x, ":") > 0 Then 'if there's a colon...
strOut = strOut & Split(x, ":")(0) & vbLf '...then get everything up to it
End If
Next x
Documents.Add 'create new word document
Selection.TypeText strOut 'dump result string to new doc
End Sub
运行 此过程将提取所有以 space 开头并以冒号结尾的文本,并将结果转储到新的 Word 文档中。
我怀疑您有没有想到的字符或间距,因此可能需要对其进行调整。
一如既往,在 运行 之前备份您的文档(由于我没有明确提及该文档,所以最好只有一个打开的文档)。
首先,我对 VBA 完全没有经验。现在我正在做一个项目,我需要在 200 MS word 文件中找到一些单词。这些词以 space
开头并以 :
(冒号)
例如: ... frauuaṣ̌īmca。 yz:; yeŋ́h/ē.: hātąm; yaθā.:啊。 vairii/ō; ...
我需要提取 yz & yeŋ́h/ē。和 yaθā.
我无法为 select 写任何正确的通配符,只是 :
之前的最后一个字(冒号)
MS Word 查找第一个和第二个之间的所有内容:
我尝试了 [!space]?:
但并不总是 return 的正确答案。
例如在这种情况下,只是 return / 或特殊字符之后的所有内容。
派蒂。 ratīm;; frauuarane:; hāuuanə̄/e:; sāuuaŋhə̄e:; raθβ±m:; y/aθā。啊。
=> ne 代替 frauuarāne,或 /e 代替 hāuuanə̄/e
谢谢
有几种方法可以做到这一点...因为我不知道RegEx,所以我还是选择了VBA;
Sub ExtractWords()
Dim myArray, x, strOut As String
myArray = Split(ActiveDocument.Content, " ") 'split doc into array by space
For Each x In myArray
If InStr(x, ":") > 0 Then 'if there's a colon...
strOut = strOut & Split(x, ":")(0) & vbLf '...then get everything up to it
End If
Next x
Documents.Add 'create new word document
Selection.TypeText strOut 'dump result string to new doc
End Sub
运行 此过程将提取所有以 space 开头并以冒号结尾的文本,并将结果转储到新的 Word 文档中。
我怀疑您有没有想到的字符或间距,因此可能需要对其进行调整。
一如既往,在 运行 之前备份您的文档(由于我没有明确提及该文档,所以最好只有一个打开的文档)。