2011-09-13 130 views
0

我需要找到這些比賽的MS Word VBA搜索文本:使用「MS Word中找到」使用通配符查找通配符

{{1,000.00}} 
{{-125}} 
{{125-}} 
{{-1’100.00}} 
{{1’100.00-}} 

應該是什麼它Selection.Find.Text

我嘗試這樣做:

[\{]{2}<*>[\}]{2} 

,但它並不適用於一些單詞工作。


這個通配符幾乎完全符合我的需要。我修改了一下,以排除回款^ 13 [\{]{2}[!\}][!^13]@[\}]{2}

但是我有匹配在這種情況下這樣blabla {{2}} {{-2-}} blabla一個段落它全段({{2}} {{-2-}})相匹配,然後它匹配{{-2-}}問題。

有人可以告訴我的原因,我需要改變通配符?

回答

1

<>字邊界通配符。對於他們來說,大括號內的第一個和最後一個字符必須是字母或數字(或者任何Word的Find認爲是「單詞」字符)。試試這個:

[\{]{2}[!\}]@[\}]{2} 

[!\}]@應該匹配一個或多個任意字符,除了}

+0

嗨Alan, 謝謝你的幫助,這個通配符幾乎完全符合我的需要。我修改了一下來排除char返回**'[\ {{2} [!\}] [!^ 13] @ [\}] {2}'** 但是這個句子的問題**' 「{{2}} {{-2-}}」**由於某些原因匹配整個單詞,然後匹配最後一個單詞,爲什麼? 謝謝 –

+0

您需要將這兩個字符類合併爲一個:'[!\}^13] @'。你擁有它的方式,'[!\}]'匹配開啓花括號後面的第一個字符,然後'[!^ 13] @'吞下其他所有東西。除非遇到回車,否則。如果這樣說,如果你不想匹配回車,你不應該拒絕換行嗎? ''[!\}^10^13] @' –

+0

嗨Alan, 再次感謝您的幫助,您所做的建議像魅力一樣工作,但是添加'^ 10'完全不符合任何要求。 我現在正在使用這個'[\ {{2} [!\}^13] @ [\}] {2}'現在唯一的小問題是它不匹配這個'{{}}'(如果爲空),其他任何工作都很好。 –