c# – 我会使用什么代码将SQL表达式转换为正则表达式?

前端之家收集整理的这篇文章主要介绍了c# – 我会使用什么代码将SQL表达式转换为正则表达式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找将类似sql的语句转换为等效的正则表达式,即
LIKE '%this%'
LIKE 'Sm_th'
LIKE '[C-P]arsen'

这样做的最佳方法是什么?

附:我希望在.Net Framework(C#)上执行此操作.

解决方法

以下正则表达式在 MatchEvaluator委托的帮助下将类似sql的模式转换为正则表达式模式.它正确处理方括号块并转义特殊的正则表达式字符.
string regexPattern = Regex.Replace(
    likePattern,@"[%_]|\[[^]]*\]|[^%_[]+",match =>
    {
        if (match.Value == "%")
        {
            return ".*";
        }
        if (match.Value == "_")
        {
            return ".";
        }
        if (match.Value.StartsWith("[") && match.Value.EndsWith("]"))
        {
            return match.Value;
        }
        return Regex.Escape(match.Value);
    });
原文链接:https://www.f2er.com/csharp/100120.html

猜你在找的C#相关文章