Я столкнулся с этой проблемой, используя регулярные выражения в .Net, и мне помогло следующее:
http://bbrown.info/2007/01/02/parsing-quantifier-xy-following-nothing-considered-harmful.aspx
Это код, который у меня возникла, похож на:
public void foo(string path, string userSearchPattern)
{
const string kPattern = "*";
// Interestnigly, using "*" here works ok.
string[] dirs = Directory.GetDirectories(path, kPattern, SearchOption.AllDirectories);
foreach (string subDir in dirs)
{
// user search pattern is "*"
Match m = Regex.Match(subDir, userSearchPattern);
if (m.Success)
{
// do something fun here
}
}
}
Я изменил kPattern, и userSearchPattern перешел к следующему, и все выглядит хорошо. Я не особо задумывался о создаваемом мной регулярном выражении, но первый комментарий в посте, связанном выше, выявил момент лицевой стороны лица - мне нужно было сказать объекту регулярного выражения, что я хотел ноль или более что-то ...
string userSearchPattern = ".*";
foo(somePath, userSearchPattern);
Я не использую Substage, но, возможно, вы создаете запрос с "*" и вам нужно указать ноль или более что-то .