2016-12-06 2 views
0

Этот метод возвращает истину, когда она не должнаКак матч с рисунком и «как» оператор побега клялся скобки ([]) в .net

pattern = "*[[email protected]]*" 
file = "test.pdf" 
    If file Like pattern Then 
     MsgBox("like method, file: " & file) 
    End If 

для каждого файла я поместил в файл вар, я получаю правда, в этой строке:

If file Like pattern Then 

реальная правда должна появиться в

file = "P0LRBE2RUK[[email protected]].awes0me" 

Итак, как можно избежать квадратные скобки ([]) для моря RCH Pattern (не регулярное выражение)

КСТАТИ Я список шаблон из API (https://fsrm.experiant.ca/), и я не могу использовать:

For Each file In IO.Directory.GetFiles(path, pattern,IO.SearchOption.AllDirectories) 

Поскольку IO.Directory.GetFiles бросить исключение для отказывали папки

ответ

0

Не самый лучший метод, но работает

Function WildcardToRegex(pattern As String) As String 
    Return "^" + Regex.Escape(pattern).Replace("\*", ".*").Replace("\?", ".") + "$" 
End Function 

Function wildcardRegexMatch(wildcard As String, s As String) As Boolean 
    Dim regexPattern As Regex = New Regex(WildcardToRegex(wilcard)) 
    Return regexPattern.IsMatch(s) 
End Function 

: D

Смежные вопросы