我有一个 SQL 查询
select * from table where field1 = :param1 and field2 = :param2
Run Code Online (Sandbox Code Playgroud)
我想从这个字符串中获取参数名称。例如:[param1, param2]
如何使用 C# 语言做到这一点?
您可以使用正则表达式来达到此目的。例如,
[:?@](?<Parameter>[\S]+)
Run Code Online (Sandbox Code Playgroud)
上面的正则表达式将有助于检索参数名称。该表达式转换为以 (:?@) 开头的单词,后跟非空白单词 (\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);
Run Code Online (Sandbox Code Playgroud)