2012-04-05 65 views
0

! 我正在使用VBA正則表達式的替換方法,並想知道它可以使用多少個參數?我見過的msdn頁面提供了許多不同的選項,但我不確定要使用哪一個。這裏是該頁面的鏈接:MSDN Page: Regex.Replace Method在VBA正則表達式中允許多少個參數?替換方法?

我希望能夠在'replace with'參數中使用反向引用和其他VBA正則表達式,如果可能的話。

我目前只能夠做到這一點,例如(文字文本替換)

RE6a = RE.Replace(strData, " ") 

我想做到這一點,例如:

RE6a = RE.Replace(strData, \s) 

RE6a = RE.Replace(strData, \1 \3 \4) 

我該如何在VBA Regex中做到這一點?

感謝您的幫助!

+2

你的鏈接是.NET正則表達式,而不是你會使用什麼VBA。 – Jay 2012-04-05 20:14:21

+1

您無法在「替換」中替換其他正則表達式。 – brettdj 2012-04-06 02:18:33

+0

你有一個特定的例子,你的字符串文字或子匹配替換沒有達到你所需要的嗎? – brettdj 2012-04-06 02:33:32

回答

3

VBA沒有正則表達式。要使用它們,你必須首先引用一個正則表達式庫。

如果它發生了,讓你引用的微選VBScript的正則表達式庫,那麼你會發現在documentation答案:

' Swap first pair of words. 
MsgBox(ReplaceTest("(\S+)(\s+)(\S+)", "$3$2$1")) 
+1

我曾評論說,這個特殊的例子交換了子匹配而不是反向引用。但是上面使用子過程(即「$ 1」語法)的過程與[參考反向引用](http://msdn.microsoft.com/en-us/library/fzhdcs5c(v = vs.85).aspx ) – brettdj 2012-04-06 02:27:20