private string TranslateToNETRegex(VBALikeParser.LikePatternStringContext likePattern)
{
StringBuilder regexStr = new StringBuilder();
foreach (var element in likePattern.likePatternElement())
{
if (element.likePatternChar() != null)
{
regexStr.Append(element.likePatternChar().GetText());
}
else if (element.QUESTIONMARK() != null)
{
regexStr.Append(".");
}
else if (element.HASH() != null)
{
regexStr.Append(@"\d");
}
else if (element.STAR() != null)
{
regexStr.Append(@".*?");
}
else
{
var charlist = element.likePatternCharlist().GetText();
if (charlist.StartsWith("[!"))
{
charlist = "[^" + charlist.Substring(2);
}
regexStr.Append(charlist);
}
}
// Full string match, e.g. "abcd" should NOT match "a.c"
var regex = "^" + regexStr.ToString() + "$";
return regex;
}
}