![](/img/trans.png)
[英]How to write regular expression to get the substring from the string using regular expression in c#?
[英]How to write regular expression to get parts from connection string?
如何編寫正則表達式以從中提取元數據,提供程序,提供程序連接字符串的內容
metadata=res://*/ent.csdl|res://*/ent.ssdl|res://*/ent.msl;provider=System.Data.SqlClient;provider connection string="Data Source=1.1.1.1;Initial Catalog={0};Persist Security Info=True;User ID=user;Password=pass;MultipleActiveResultSets=True"
我的意思是,我想得到
元數據: res://*/ent.csdl|res://*/ent.ssdl|res://*/ent.msl
提供程序: System.Data.SqlClient
提供程序連接字符串: Data Source=1.1.1.1;Initial Catalog={0};Persist Security Info=True;User ID=user;Password=pass;MultipleActiveResultSets=True
不假定ConnString的任何特定順序:
var connString = @"metadata=res://*/ent.csdl|res://*/ent.ssdl|res://*/ent.msl;provider=System.Data.SqlClient;provider connection string=""Data Source=1.1.1.1;Initial Catalog={0};Persist Security Info=True;User ID=user;Password=pass;MultipleActiveResultSets=True""";
Regex metaRegex = new Regex(@"metadata=(?<metadata>[^;]+)");
Regex connRegex = new Regex(@"provider\sconnection\sstring=""(?<conn>[^""]+)");
Regex providerRegex = new Regex(@"provider=(?<provider>[^;]+)");
Console.WriteLine("MetaData: " + metaRegex.Match(connString).Groups["metadata"]);
Console.WriteLine("Connection String: " + connRegex.Match(connString).Groups["conn"]);
Console.WriteLine("Provider: " + providerRegex.Match(connString).Groups["provider"]);
正則表達式,例如:
^(res:[^;]+);provider=([^;]+);provider\sconnection\sstring=\"(.+)\"$
給您3個捕獲組,提供您需要的部分。
您可以使用命名捕獲組為每個類別定義模式,.Net RegEx匹配支持此模式。 有關命名捕獲組的說明,請參見此處 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.