2012-06-06 42 views
1

我在web.config中的線是如下背部參照問題的VBScript正則表達式小組賽

<clientDependency loggerType="xxx.ClientDependencies.Logger,StrattonWebShared" version="144"> 

我所試圖做的是寫一個腳本,檢查我的修改,然後代碼庫如果發現任何更新clientDependency模塊版本1。因此,將版本增加一位的代碼位如下

Set clientDepRegExp = new RegExp 
    clientDepRegExp.IgnoreCase = True 
    clientDepRegExp.Global = True 
    clientDepRegExp.Pattern = "(<clientDependency.*version=\"")(\d+)(\"".*)" 

    '1 = open file for reading 
    Set clientDependencyConfigFile = fileSystemObject.OpenTextFile(targetFile, 1) 

    fileContents = clientDependencyConfigFile.ReadAll 

    clientDependencyConfigFile.Close 

    fileContents = clientDepRegExp.Replace(fileContents, "$1" & CInt("$2") + 1 & "$3") 

我的問題是與最後一行。 $2是版本號,做CInt("$2") + 1只是給我3(所以2 + 1是)。如果我僅使用"$2",則返回144(請參閱版本號的第一行)。所以我的問題是如果我wana做一個快速算術內部取代我該怎麼做呢?

預先感謝任何提示ANS建議,你可以提供

+0

如果我能得到答案,會很好。謝謝 – user446923

回答

1

更改代碼這樣的事情:

Set clientDepRegExp = New RegExp 
Set fso = New Scripting.FileSystemObject 
With clientDepRegExp 
    .IgnoreCase = True 
    .Global = True 
    .Pattern = "(<clientDependency[^<>]*?version="")(\d+)\b" 
    fileContents = fso.OpenTextFile(targetFile).ReadAll 
    tmp = .Replace(reftext, "$2") 
    fileContents = .Replace(reftext, "$1" & CStr(Val(tmp) + 1)) 
End With 

希望這項工作。