我有一些嚴重的問題,試圖讓我的正則表達式正常工作,試圖提取UNC路徑。我已經閱讀了無數的教程,指南,甚至在線正則表達式測試人員(他們似乎在工作)測試了我的正則表達式,但是仍然無法在我的代碼中使用它。但是,我可以讓它在PHP中工作。VBScript正則表達式問題
我正在使用PrimalScript來試圖看看出了什麼問題,以後再說。這裏是我當前的代碼我使用的:
Dim WSHShell, strString, nrMatches, myMatches
Set WSHShell = CreateObject("WScript.Shell")
Set myRegExp = New RegExp
myRegExp.IgnoreCase = True
myRegExp.Global = True
' myRegExp.Pattern = "^\\\\(.*?)+\\(.*)*\s...\\(.*)*$" <-- Returns 1 match, the whole String
' myRegExp.Pattern = "^\\\\(\w?)+\\(\w)*\s...\\(\w)*$" <-- Returns 0 matches
' myRegExp.Pattern = "^\\\\(.*?)+\\\(.*)*\s...\\\(.*)*$" <-- Gives Syntax Error
' myRegExp.Pattern = "^\\\\\\\\(.*?)+\\\(.*)*\s...\\\(.*)*$" <-- Gives Syntax Error
' myRegExp.Pattern = "^\\\\(.*)\\(.*)\s\.\.\.\\(.*)?$" <-- Returns 1 match, the whole String
myRegExp.Pattern = "^(.*)+\\(.*)+(\s\.\.\.\\(.*))?$" ' <-- Returns 1 match, the whole String
strString = "\\domain.subnet.net\share1 ...\share2"
Set myMatches = myRegExp.Execute(strString)
nrMatches = myMatches.Count
MsgBox "Found " & nrMatches & " Matches!", vbOKOnly, "Number of Matches"
For Each myMatch In myMatches
MsgBox "Value: " & myMatch.Value, vbOKOnly, "Found Match"
Next
WScript.Quit
的評論正則表達式的是什麼,我已經試過只是一小部分,這些是那些我有「最」 sucess用。吸引我眼球
的一件事是,而在PrimalScript調試,它基本上跟我說的參數 谷歌搜索就可以了myMatches.Item =無效的號碼給了我什麼,雖然,但也許這裏有人知道什麼參數來執行需要嗎? 如果有必要,我可以提供它的截圖,只是讓我知道。
謝謝,我會感謝任何指針或技巧,幫助我得到這個打算=]
@Stema另一個澄清:股份也可能是多個深度,這意味着如果字符串我「\\ domain.subnet.net \ share1 \ share2 .. 。\ share3「,我想提取份額3並用它替換份額2。換句話說,目的是映射(在這種情況下)\\ domain.subnet.net \ share1 \ ** share2 **和\\ domain.subnet.net \ share1 \ ** share3 ** – Exodus 2011-05-06 09:26:50
嘿@Stema,從我所瞭解的情況來看,VBScript不允許看起來落後(請參見http://www.regular-expressions.info/vbscript.html) - 這可能是什麼原因造成的?另外,你的第二個Regexr建議會引發我一個「正則表達式中的語法錯誤」。爲了澄清我的意圖,我需要重新組合這兩個股份。三個併發點(... \)表示直到最後一個文件夾的所有內容都應該相同。我認爲嘗試使用正則表達式來提取數據並操作它會容易得多。也許最好的辦法是分步實施? – Exodus 2011-05-06 09:28:02
@Daniel,對不起,我沒有證實,閱讀VB ...我想到.net,這將支持看後面。然後在這裏試試[Rubular](http://www.rubular.com/r/ykN20h8FPZ)'(?:^ | \ s)((?:\\ | \。)[^ \ s] +)'。背後的觀點只是爲了避免這會導致結果。有了這個正則表達式,領先的空間也是匹配的,但我把你的路徑放到了第一個捕獲組中。我也替換了VBScript不支持的'\ A'。 – stema 2011-05-06 09:32:03