所以這是我第一次使用C#的實時,我有一些使用正則表達式的麻煩。 所以我有這樣的字符串:C#正則表達式匹配數組
string str = "test=CAPTURE1; test2=CAPTURE2; ......."
我=
和;
之間捕捉一切,所以:
var matches = Regex.Matches(str, "=([^;]*);/g");
但是,我不能得到的結果出來的array:
string str2 = matches[0].Value;
我不知道我在做什麼錯。任何幫助表示讚賞!
編輯: 所以這裏就是我想實現這(使用@Jason埃文斯代碼):
string connection = "Server=localhost;Database=dbTest;User Id=hello;Password=world;";
var matches = Regex.Matches(connection, "(?<Key>[^=]*)=(?<Value>[^;]*)");
string server = matches[0].Groups["Data"].Value;
string db = matches[1].Groups["Data"].Value;
string un = matches[2].Groups["Data"].Value;
string pw = matches[3].Groups["Data"].Value;
MsSqlConnectionParameters param = (MsSqlConnectionParameters)e.ConnectionParameters;
param.ServerName = server;
param.DatabaseName = db;
param.UserName = un;
param.Password = pw;
這仍然不是出於某種原因的工作,雖然我相信這是對。
EDIT2:什麼奇怪的是,這工作(使用相同的數據)......我很爲難:
string[] test = { "localhost", "dbTest", "hello", "world" };
MsSqlConnectionParameters param = (MsSqlConnectionParameters)e.ConnectionParameters;
param.ServerName = test[0];
param.DatabaseName = test[1];
param.UserName = test[2];
param.Password = test[3];
全局標誌由'Regex.Matches()'方法隱含。雖然看到這裏使用全局標誌,但它不是像JS一樣完成:https://msdn.microsoft.com/en-us/library/b49yw9s8%28v=vs.110%29.aspx – Pluto
我試過你例如刪除'/ g'在你的正則表達式的結尾,它按預期工作。你在用什麼? – Luiso
@Luiso我已更新我的文章,以便您可以看到我的實施 –