2014-11-05 23 views
0

字符串源是部分具有1次出現時部具有多個

<?control Alias="QuestionarySuccess" /> 
<?control Alias="DetailDetail" IsDetail="1" IsReview="1" DetailId="456" EntityID="789" ViewId="123" Style="tyuui" Type="2" BannerId="56" /> 

它可以是參數(如IsDetail =「1」,IsReview =「1」)在這裏(0或任何計更多,任何參數名稱)。我應該找到所有參數:有名字和值。 我使用這樣的正則表達式:

(new Regex("<\\?control((\\S+)=\"(\\S+)\")+", RegexOptions.IgnoreCase|RegexOptions.Singleline)).Matches(template) 

的問題是:在2速情況下,它僅找到最後匹配BannerId =「56」。我該如何查找所有參數字符串?

回答

0

你有沒有考慮過分兩步?首先,你可以檢查是否匹配行:

<?control.*/> 

,然後讓每個鍵 - 值對有:

(?<key>\S+)="(?<value>\S+)" 
+0

是的,我想過這個問題。但是會有2個循環(循環循環)來獲取所有參數。 – Galina 2014-11-05 10:36:04

+0

據我所知,總會有兩個循環 - 循環不同的「控制」並循環匹配的參數。 – 2014-11-05 10:42:21

+0

謝謝,康拉德。我認爲沒有更好的決定。 – Galina 2014-11-06 05:43:49

相關問題