2013-12-23 23 views
0

我有以下字符串,需要一個正則表達式來匹配返回的值和鍵。需要正則表達式值才能正確匹配我的輸入文本

GUID = 「b3b63ef4-ebb3-4983-9c4e-0eccf77ec32c」

我用下面的代碼,但聽起來沒有與該問題NAME = 「test.testName」:

Regex.Matches(s, "(\\w+)=\"([\\w\\.:\\?/=]+)\"", RegexOptions.IgnoreCase | RegexOptions.Compiled) 

什麼我得到的只是name =「test.testName」而非guid。

有什麼建議嗎?

回答

1

您的正則表達式當前不允許使用連字符。請嘗試:

Regex.Matches(s, "(\\w+)=\"([\\w\\.:\\-\\?/=]+)\"", ...params...); 
+0

感謝尼爾斯,它完美 –

1

這是因爲您不符合您的guid中的-。它不在\w中,也不在角色類的任何其他部分。

如果你確定你輸入的格式,你可以嘗試用

Regex.Matches(s, "(\\w+)=\"([^\"]+)\"", RegexOptions.IgnoreCase | RegexOptions.Compiled); 

匹配此相匹配的詞,一個等號,開雙引號,然後一個數字任何東西的那是而不是雙引號後面是一個結束雙引號。

0

也許是這樣的:

Regex.Matches(s, @"(\w+)=""([^""]*)""", 
    RegexOptions.IgnoreCase | RegexOptions.Compiled);