C#中的Reg表达式

时间:2009-10-27 09:29:22

标签: c# .net regex connection-string

我给了上面的字符串,我想从该字符串中获取serveripaddress,DB1,uid和****这些值。

4 个答案:

答案 0 :(得分:6)

不要使用正则表达式。

使用SqlConnectionStringBuilder解析连接字符串,然后从中访问密钥。

var b = new SqlConnectionStringBuilder(myConnectionString);
var dataSource = b["Data Source"]; 
// etc.

更容易,更易于维护和更可靠。

答案 1 :(得分:2)

data source=([^;]*);Initial Catalog=([^;]*);user id=([^;]*);Password=([^;"]*)

然后你可以在第1组到第4组中进行比赛。如果你感到无聊,你可以命名这些组;有助于代码的可读性,但很少有助于正则表达式本身的可读性。

答案 2 :(得分:1)

使用';'分割值不是更容易吗? char然后用'='char?

分割每个项目

这样您的连接字符串就可以被用户编辑,甚至可以更改项目顺序。

答案 3 :(得分:1)

当BCL可以为您执行此操作时,无需解析连接字符串:

var builder = new OleDbConnectionStringBuilder(connectionString);
var provider = builder.Provider;
var dataSource = builder.DataSource;
var initialCatalog = builder["Initial Catalog"];
var userID = builder["User ID"];
var password = builder["Password"];

请注意,对于OLE DB连接字符串,只有标准的交叉提供程序属性具有强类型属性名称,其余所有属性都通过索引器访问。