2013-04-08 34 views
0

鑑於Find.Execute不允許正則表達式Find.Execute在Office COM的缺點,有什麼COM辦法做到這一點的一個流之外的段落並通過他們踩着一個?爲了彌補

我需要在Word文檔中找到RegEx模式,,最好返回匹配。否則,在Word文檔中找到RegEx並至少返回$ True,以便我可以捕獲它。

N.B .:我意識到原因Find.Execute是有限的,因爲它是一個調用「查找文本」對話框,但我希望有一些類似的有效方式來搜索模式。 Find.Execute非常快速,將文檔中的文本作爲範圍流出,然後通過搜索不是。

回答

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

+0

「當什麼確切Find.Execute停止允許正則表達式?」 你回答了這個問題:它從來沒有。通配符不是正則表達式。在我與他們打交道的時代,他們沒有[正則表達式]調用的能力,並且具有不同的語法,因此學習它們是一種負擔。但是,對於我的使用案例,我想我會咬緊牙關,學習細節以重新獲得速度優勢。 – Tohuw 2013-07-31 18:22:57