none
如何提取正则表达式match后的结果? RRS feed

  • 问题

  • 刚刚的帖子里,多谢XYZ斑竹的帮忙,实现了正则表达式的使用
    Regex re = new Regex(@"\b.*""tac\smb10""\s>(\S*)<img.*\b", RegexOptions.None);
    MatchCollection mc = re.Matches(myString);
    foreach (Match ma in mc)
    {
    }

    我现在已经能找到了自己所需要的内容,怎么把小程序中红框所示的内容提出来呢??
    我看它的小程序能识别出我要的那个数字,但是我自己怎么拿出来呢?
    我看value属性似乎不是呢。。

    http://i3.6.cn/cvbnm/5a/0c/ef/cecd398e18e5d7e5bd58fc96a1da7c61.jpg
    2009年12月9日 8:49

答案

  • 嗯,不好意思,我可能么说清楚。
    我已经使用正则表达式来获取我需要的东西了,也就是(\S*)括号里面的\S*所表示的所有内容,在我这个式子来说就是8900了。

       Regex rePrice = new Regex(@"\b.*""tac\smb10""\s>(?'Price'\S*)万元<img.*\b", RegexOptions.None);
    为了方便,我把它放到Price的组内,
    然后在循环里使用:ma. Groups["Name"].Value.ToString();
    就可以把它提出来了。
    • 已标记为答案 阿朵 2009年12月10日 3:04
    2009年12月10日 3:03

全部回复

  • 你就一个数字8900用红框表示,
    其他的那么多数字不用取吗?》你的图片不完整


    努力+方法=成功
    2009年12月9日 9:12
  • tostring()之后 使用string类的 成员 方法  请看MSDN

    取第一个 > 和 第一个< 之间的字符串就是你要的数字
    2009年12月9日 18:18
  • 你可以在正则中用:声明变量。这样可以通过变量名字取得匹配的值

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年12月9日 21:56
    版主
  • 嗯,不好意思,我可能么说清楚。
    我已经使用正则表达式来获取我需要的东西了,也就是(\S*)括号里面的\S*所表示的所有内容,在我这个式子来说就是8900了。

       Regex rePrice = new Regex(@"\b.*""tac\smb10""\s>(?'Price'\S*)万元<img.*\b", RegexOptions.None);
    为了方便,我把它放到Price的组内,
    然后在循环里使用:ma. Groups["Name"].Value.ToString();
    就可以把它提出来了。
    • 已标记为答案 阿朵 2009年12月10日 3:04
    2009年12月10日 3:03