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); }