带有开始和结束字符串的正则表达式

时间:2014-02-25 09:48:57

标签: c# asp.net regex

我有一个示例代码

<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);
 }

1 个答案:

答案 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);
    }

}