如何用正则表达式判断 字符串中 存在 形如 ">3.39<" 或 ">10.13<" 的部分并抽取出来?

解决方案 »

  1.   

    string s = "CCCCCCC>3.39<DDDDDDD>10.13<EEEEEEEEE";
    Regex reg = new Regex(@"(>.*<)");
    MatchCollection matches = reg.Matches(s);
    for(int i=0;i<matches.Count;i++)
    {
        MessageBox.Show(matches[i].Groups[0].Value);
    }
      

  2.   

    多谢  sunjian_qi,我可能没表达清楚。字符串中只有一个 形如 >1.23< 的项。>与< 之间是个一到两位整数,两位小数的数字。正则表达式我完全不懂,但好象你那个不能保证是数字吧?
      

  3.   

    以为你连不是数字的也要取出来呢。那么如果确定>与< 之间是个一到两位整数,两位小数的数字。
    就把
    @"(>.*<)"
    改成
    @"(>\d{0,2}\.\d{2}<)"注意此种写法只能匹配如.23, 0.23, 10.23这三种形式,如要匹配整数不限、小数位数不限的话,就像速马老大写的那样。另外如果不要匹配>和<这两个符号,就把它们写在括号的外面,如
    @">(\d*\.\d{2})<"
      

  4.   

    速马好。我这样写对吗? 怎么返回来的要么是空值,要么是"><"呢?private string GetPriceDigital(string str)
    {
       Regex reg = new Regex(@">(\d*\.?\d*)<");
       return reg.Match(str).Value;
    }
      

  5.   


    基本通过了。不过 不管我 写成 @">(\d{0,2}\.\d{2})<" 还是 @"(>\d{0,2}\.\d{2}<)",怎么返回来的值都带着>和<,即形如 ">1.23<" ?
      

  6.   

    你应该写return reg.Match(str).Groups[0].Value;