首页 > 解决方案 > 如何从 SQL 查询中提取参数名称

问题描述

我有一个 SQL 查询

select * from table where field1 = :param1 and field2 = :param2

我想从此字符串中获取参数名称。例如:[param1, param2]

如何使用 c# 语言做到这一点?

标签: c#

解决方案


您可以为此目的使用正则表达式。例如,

[:?@](?<Parameter>[\S]+)

上面的正则表达式将有助于检索参数名称。该表达式转换为以 (:?@) 开头的单词,后跟非空白单词 (\S)。

完整代码

var regex = new Regex(@"[:?@](?<Parameter>[\S]+)");
var str = "select * from table where field1 = @param1 and field2 = :param2";
var matchCollection = regex.Matches(str);
var result = matchCollection.Cast<Match>().Select(x => x.Groups["Parameter"].Value);

推荐阅读