部分字符串有1个出现,部分有多个

时间:2014-11-05 10:03:51

标签: c# regex

字符串来源是

<?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)

问题是:在第二种情况下,它只找到最后一次匹配BannerId =“56”。我该怎么做才能找到所有参数字符串?

1 个答案:

答案 0 :(得分:0)

您是否考虑分两步制作?首先,您可以检查行是否匹配:

<?control.*/>

然后获取每个键值对:

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