質問
上記の文字列を指定し、その文字列からserveripaddress、DB1、uidおよび****これらの値を取得したい。
解決
接続文字列を解析する必要はありませんが、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接続文字列の場合、標準のクロスプロバイダープロパティのみが厳密に型指定されたプロパティ名を持ち、残りはすべてインデクサー経由でアクセスされることに注意してください。
他のヒント
正規表現を使用しないでください。
SqlConnectionStringBuilderを使用して接続文字列を解析する
から、そこからキーにアクセスします。
var b = new SqlConnectionStringBuilder(myConnectionString);
var dataSource = b["Data Source"];
// etc.
はるかに簡単で、メンテナンスしやすく、信頼性が高い。
data source=([^;]*);Initial Catalog=([^;]*);user id=([^;]*);Password=([^;"]*)
グループ1から4に一致します。退屈した場合は、グループに名前を付けることができます。コードの可読性は向上しますが、正規表現自体の可読性はほとんど向上しません。
「;」を使用して値を分割するのは簡単ではありませんcharそして、すべての項目を「=」charで分割しますか?
これにより、ユーザーが接続文字列を編集し、アイテムの順序を変更することもできます。
所属していません StackOverflow