有开始和结束的字符串的正则表达式 [英] Regex with start and end strings

查看:163
本文介绍了有开始和结束的字符串的正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个例子code

 < H1>
    < ASP:文字ID =ltAccountTitle=服务器>< / ASP:文字>
< / H1>
&所述p为H.;
   < ASP:文字ID =ltNetBalance=服务器文本=净差额元:获取ResourceKey =ltNetBalanceResource>< / ASP:文字>
   <跨度>
       < ASP:文字ID =ltNetBalanceAmount=服务器>< / ASP:文字>
   < / SPAN>
&所述; / P>

我想写一个普通的前pression找了半天字符串中的字符串。

匹配:

 < ASP:文字ID =ltAccountTitle=服务器>< / ASP:文字>

 < ASP:文字ID =ltNetBalanceAmount=服务器>< / ASP:文字>

其实我使用下面的code让所有匹配到字符串列表。与常规的前pression我能得到它?我试过了模式变量很多事情,但不可能解决这个问题。

  VAR LST =新的List<串GT;();
 VAR MCOL = Regex.Matches(文本2,图案); 的foreach(在MCOL赛米)
 {
    lst.Add(m.Value);
 }


解决方案

您试图让只有那些ID和服务器RUNAT标签的文字,如果是下面的工作正常,我并准确得到2文字

 静态无效TestRegEx()
{
    字符串输入=< H1>中
        +< ASP:文字ID = \\ltAccountTitle \\RUNAT = \\服务器\\>< / ASP:文字>中
        +&下; / H1>中
        +&所述; P>中
        +< ASP:文字ID = \\ltNetBalance \\RUNAT = \\服务器\\文本= \\净差额\\荟萃:获取ResourceKey = \\ltNetBalanceResource \\>< / ASP:文字>中
        +&所述;跨度>中
        +< ASP:文字ID = \\ltNetBalanceAmount \\RUNAT = \\服务器\\>< / ASP:文字>中
        +&下; /跨度>中
        +&下; / P>中;    VAR集合= Regex.Matches(输入< ASP:文字ID = \\\\\\ W * \\RUNAT = \\服务器\\>< / ASP:文字>);    的foreach(在收集匹配项)
    {
        Console.WriteLine(item.Value);
    }

}

I have an example code

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

I want to write a regular expression to find strings inside a long string.

Matches:

<asp:Literal ID="ltAccountTitle" runat="server"></asp:Literal>

and

<asp:Literal ID="ltNetBalanceAmount" runat="server"></asp:Literal>

Actually I am using the code below to get all matches into string list. With which regular expression I can get it? I've tried many things for pattern variable but couldnt solve this problem.

 var lst = new List<string>();
 var mcol = Regex.Matches(text2, pattern);

 foreach (Match m in mcol)
 {
    lst.Add(m.Value);
 }

解决方案

Are you trying to get only literals that have ID and runat server tags, if yes the following works fine for me and gets exactly 2 literals

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

}

这篇关于有开始和结束的字符串的正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆