求一正则表达式从内容中提取出来价格,内容部分例示如下:“内容正文正文内容正文内容正文内容正文内容价格:190元/正文内容正文内容正文内容正文内容正文内容。”要求把“190元”取出来,190元的位置在文章中位置是不固定的。可以确定的条件是 必须是 用 “:”号开始,用“/”作为结速条件。不知表达是否清楚,请达人作答。谢谢。

解决方案 »

  1.   

    先看下这样是否满足要求吧string test = "内容正文正文内容正文内容正文内容正文内容价格:190元/正文内容正文内容正文内容正文内容正文内容";
    Regex reg = new Regex(@"(?<=:)[^:/]+(?=/)");
    Match m = reg.Match(test);
    if (m.Success)
    {
        richTextBox2.Text = m.Value;
    }
      

  2.   

     string s = "内容正文正文内容正文内容正文内容正文内容价格:190元/正文内容正文内容正文内容正文内容正文内容。"; 
    Regex reg = new Regex(@"(?<desc1>.*):(?<price>\d+)/(?<desc2>.*)", RegexOptions.Compiled); 
    Match match = reg.Match(s); 
    int price =  int.Parse(match.Groups["price "].Value); Console.WriteLine(price);
      

  3.   

    表达式:
    ^.*:(?<money>\d+元).*$
    用法:Regex re=new Regex(@"^.*:(?<money>\d+元).*$");
    Match m=re.Match( "内容正文正文内容正文内容正文内容正文内容价格:190元/正文内容正文内容正文内容正文内容正文内容。");
    string money=m.Group["money"].Value;money就是你要的
      

  4.   

    做一下更改:string s = "内容正文正文内容正文内容正文内容正文内容价格:190元/正文内容正文内容正文内容正文内容正文内容。";
    Regex reg = new Regex(@"(?<desc1>.*):(?<price>\d+.*)/(?<desc2>.*)", RegexOptions.Compiled);
    Match match = reg.Match(s);
    string price = match.Groups["price"].Value;Console.WriteLine(price);
      

  5.   

    string s = "内容正文正文内容正文内容正文内容正文内容价格:190元/正文内容正文内容正文内容正文内容正文内容。";
    Regex reg = new Regex(@"(?<desc1>.*):(?<price>\d+.*)/(?<desc2>.*)", RegexOptions.Compiled);
    Match match = reg.Match(s);
    string price = match.Groups["price"].Value;Console.WriteLine(price);
      

  6.   

    二楼不仅正确,而且简单。
    请教二楼 lxcnn ,
    (?<=:) 和 (?=/)都是什么意思呢?
      

  7.   

    (?<=exp)匹配exp之后的内容但不包括exp
    (?=exp)匹配exp之前的内容但不包括exp