如何取得<form action="lc.asp" method="post"><BR><BR><BR>正文<BR><BR></form>之间"正文"的内容啊?
还请高手指教.

解决方案 »

  1.   

    补充:真正的字符串里有若干个<form>标记,但action内容不同.
      

  2.   

    string a="<form action=\"lc.asp\" method=\"post\"><BR><BR><BR>正文<BR><BR></form>";
    Regex reg=new Regex("(?<=<BR>)[^<]+(?=<BR>)");
    a=reg.Match(a).Value;
      

  3.   

    TO:cancerser(都是混饭吃,记得要结帖) 我今天早上才開始接觸正則。
    你給的例子可以,但用到我的實例中不行!
    我的實例內容大概如下:
    .....
    <form action="login.asp" method="post">
    <BR><BR>登录<BR><BR>
    </form>
    <form action="lc.asp" method="post">
    <BR><BR><BR>
       <font color='red'>北京至广州</font>&nbsp;<font color='red'>2575</font>公里<BR><BR><BR>
    </form>
    .....
    我想取出這一段:<font color='red'>北京至广州</font>&nbsp;<font color='red'>2575</font>公里有個問題:
    假設我想取“a”到"b"之間的內容,正則如何表達呢???
    謝謝!
      

  4.   

    ArrayList results = new ArrayList();
    string str = "<form action=\"lc.asp\" method=\"post\"><BR><BR><BR>正文<BR><BR></form>";
    string pattern1 = @"\<form action=[^<>]*\>(.*)\<\/form\>";
    string pattern2 = @"\<[^\<\>]*\>"; //这部分是你要删除的部分,可以改为“\<BR\>”或其它
    int pos = 1;Regex re1 = new Regex(pattern1, RegexOptions.Singleline);
    Regex re2 = new Regex(pattern2, RegexOptions.Singleline);MatchCollection mc = re1.Matches(str);
    IEnumerator ie = mc.GetEnumerator();
    while (ie.MoveNext())
    {
    Match m = ie.Current as Math;
    results.Add(re2.Replace(m.Groups[pos].Value, ""));
    }return results;
      

  5.   

    (?<=<BR>)[^<]+(?=<BR>)
    //和我这种写法类似
    (?<=a).*(?=b) 这样就是取ab之间的东西
    至于你这个 我建议这么写
    string a=yourString;
    Regex reg=new Regex("(?<=<form[^>]*>).+(?=</form>)",RegexOptions.Singleline|RegexOptions.IgnoreCase);
    foreach(Match m in reg.Matches(a))
    {
    a=Regex.Replace(m.Value,"<BR>","",RegexOptions.IgnoreCase);
    }//这是个循环,好好看看这里面的a的值
      

  6.   

    去掉所有HTML语言,便可以正文内容!str = "<form action="lc.asp" method="post"><BR><BR><BR>正文<BR><BR></form>";
    str = Regex.Replace(str, @"<[^<]*>", "", RegexOptions.IgnoreCase | RegexOptions.Compiled);ok!