Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用正则表达式从连接字符串中提取属性_C#_Regex - Fatal编程技术网

C# 使用正则表达式从连接字符串中提取属性

C# 使用正则表达式从连接字符串中提取属性,c#,regex,C#,Regex,在C#中,我试图从连接字符串中获取数据源和初始目录属性 所以如果我有 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;MultipleActiveResultS

C#
中,我试图从连接字符串中获取
数据源
初始目录
属性

所以如果我有

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"

如何仅提取值
myDESKTOP
dbName
,而不考虑表达式左侧的大小写?

您可以剖析实体框架的连接字符串并提取内部基本连接字符串。此时,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);

既然你可以这样做,为什么还要用正则表达式呢