简体   繁体   English

使用Regex从连接字符串中提取属性

[英]Extract properties from a connection string using Regex

In C# I am trying to get the Data Source and initial catalog properties from a connection string. C#我试图从连接字符串获取Data Sourceinitial catalog属性。

So if I have 所以如果我有

metadata=res://*/model.csdl|res://*/model.ssdl|res://*/model.msl;provider=System.Data.SqlClient;provider connection string="data source=myDESKTOP;initial catalog=dbName;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"

How can I extract just the values myDESKTOP and dbName regardless of case on the left hand of the expression? 无论表达式左侧的大小写如何,如何仅提取值myDESKTOPdbName

You could dissect your connection string for Entity Framework and extract the internal basic connection string. 您可以剖析Entity Framework的连接字符串并提取内部基本连接字符串。 At that point the SqlConnectionStringBuilder could give you the individual parts that compose the connection string 那时,SqlConnectionStringBuilder可以为您提供组成连接字符串的各个部分

string test = "metadata=res://*/model.csdl|res://*/model.ssdl|res://*/model.msl;provider=System.Data.SqlClient;provider connection string=\"data source = myDESKTOP; initial catalog = dbName; integrated security = True; MultipleActiveResultSets = True; App = EntityFramework";

string con = string.Join("=", 
                    string.Join(";", test.Split(';').Skip(2))
                          .Split('=').Skip(1)).Trim('"');

SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(con);
Console.WriteLine(sb.DataSource);
Console.WriteLine(sb.InitialCatalog);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM