加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:57:53 所属栏目:百科 来源:网络整理
导读:我正在寻找将类似SQL的语句转换为等效的正则表达式,即 LIKE '%this%'LIKE 'Sm_th'LIKE '[C-P]arsen' 这样做的最佳方法是什么? 附:我希望在.Net Framework(C#)上执行此操作. 解决方法 以下正则表达式在 MatchEvaluator 委托的帮助下将类似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);
    });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读