我有一个示例代码
<h1>
<asp:Literal ID="ltAccountTitle" runat="server"></asp:Literal>
</h1>
<p>
<asp:Literal ID="ltNetBalance" runat="server" Text="Net balance" meta:resourcekey="ltNetBalanceResource"></asp:Literal>
<span>
<asp:Literal ID="ltNetBalanceAmount" runat="server"></asp:Literal>
</span>
</p>
我想写一个正则表达式来查找长字符串中的字符串。
匹配
<asp:Literal ID="ltAccountTitle" runat="server"></asp:Literal>
和
<asp:Literal ID="ltNetBalanceAmount" runat="server"></asp:Literal>
实际上我正在使用下面的代码将所有匹配项都放入字符串列表中。用哪个正则表达式我可以得到它?我为模式变量尝试了很多东西,但无法解决这个问题。
var lst = new List<string>();
var mcol = Regex.Matches(text2, pattern);
foreach (Match m in mcol)
{
lst.Add(m.Value);
}
答案 0 :(得分:0)
你是否只想获得具有ID和runat服务器标签的文字,如果是,以下工作对我来说很好,并且正好得到2个文字
static void TestRegEx()
{
string input = "<h1>"
+ "<asp:Literal ID=\"ltAccountTitle\" runat=\"server\"></asp:Literal>"
+ "</h1>"
+ "<p>"
+ "<asp:Literal ID=\"ltNetBalance\" runat=\"server\" Text=\"Net balance\" meta:resourcekey=\"ltNetBalanceResource\"></asp:Literal>"
+ "<span>"
+ "<asp:Literal ID=\"ltNetBalanceAmount\" runat=\"server\"></asp:Literal>"
+ "</span>"
+ " </p>";
var collection = Regex.Matches(input, "<asp:Literal ID=\"\\w*\" runat=\"server\"></asp:Literal>");
foreach (Match item in collection)
{
Console.WriteLine(item.Value);
}
}