У меня были серьезные проблемы с попыткой заставить мое регулярное выражение работать должным образом, пытаясь извлечь путь UNC. Я прочитал бесчисленное количество учебников, руководств и даже протестировал свои регулярные выражения в онлайн-тестерах регулярных выражений (где они, кажется, работают), но я все еще не могу заставить его работать в моем коде. Однако я могу заставить его работать, например, на PHP.
Я использую 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
Прокомментированные регулярные выражения - это лишь небольшая часть того, что я пробовал, это те, с которыми я добился "наибольшего" успеха.
Одна вещь, которая бросилась мне в глаза, заключалась в том, что во время отладки в PrimalScript он в основном сказал мне, что myMatches.Item = Invalid number of parameters Хотя поиск в Google ничего не дал мне, но, возможно, кто-то здесь знает, какие параметры нужны Execute? Я мог бы предоставить скриншот, если это необходимо, просто дайте мне знать.
Спасибо, я буду признателен за любые указатели или советы, которые помогут мне в этом. =]