public static EscapeFilter ( string filter ) : string | ||
filter | string | |
return | string |
public static string EscapeFilter(string filter)
{
filter = filter
.Replace("*", "\x0")
.Replace("?", "\x1");
return String.Format(
"^{0}$",
Regex.Escape(filter)
.Replace("\x0", "(.*)")
.Replace("\x1", "(.?)")
);
}
private void TracebackFilter_FilterChanging(object sender, FilterChangingEventArgs e) { if (e.Filter.Trim().Length == 0) { return; } var filter = MainWindow.EscapeFilter(e.Filter); Regex regex; try { regex = new Regex(filter); } catch { e.SetValid(false); return; } foreach (var name in FunctionNames) { if (regex.IsMatch(name)) { e.SetValid(true); return; } } e.SetValid(false); }