Я знаю, что это и старая тема, но вот мое очень простое решение:
string s=Regex.Escape("pattern - escaped for sanity").Replace("%", ".*").Replace("_", ".?");
user => Regex.IsMatch(user.FullName, s, RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
В этом коде я использую общие escape-символы для языка SQL. Если вы хотите использовать say *
и ?
, escaped string будет содержать \*
и \?
соответственно, обязательно включите символ обратной косой черты в инструкции (f6) , Конечно, если вы хотите дать своему пользователю возможность искать RexEx, просто не избегайте строки шаблона.
Поиск в учебнике Regex для других опций.
Я считаю, что обычно %
будет соответствовать хотя бы одному символу , а RegEx .*
будет соответствовать ноль или более символов. Таким образом, в действительности подстановочный символ %
больше похож на .+
(жадный), а не на .*
(ленивый).
Надеюсь, это поможет.
Если Вы переходите к старому репозиторию мерзавца мерзавец псевдоним, они предлагают, отличается. https://github.com/aanand/git-up
git config --global alias.up 'pull --rebase --autostash'
Это работает идеально подходящее для меня.