补偿Office COM中Find.Execute的缺点

时间:2013-04-08 15:21:13

标签: powershell office-interop

鉴于Find.Execute不允许使用RegEx,除了将段落流出并逐个逐步执行之外,是否还有COM方法可以做到这一点?

我需要在Word文档中找到一个RegEx模式,并最好返回匹配。如果做不到这一点,在Word文档中找到一个RegEx并至少返回$ True,这样我就可以捕获它。

N.B。:我意识到Find.Execute被限制的原因是由于它是对“查找文本”对话框的调用,但我希望有一些类似的有效方法来搜索模式。 Find.Execute相当快,将文档中的文本作为范围流出,然后搜索不是。

1 个答案:

答案 0 :(得分:1)

什么时候Find.Execute完全停止允许正则表达式?

$wd = New-Object -COM "Word.Application"

...

$fnd = $wd.Selection.Find

$fnd.Text = "..."  # replace with your pattern
$fnd.MatchWildcards = True
...
$fnd.Execute

语法只是标准正则表达式的little different