现在我有这么一个字符串:
<img src='/images/store/icon/icon_star_2.gif'>
<img src='/images/store/icon/icon_star_2.gif'>
<img src='/images/store/icon/icon_star_2.gif'>
<img src='/images/store/icon/icon_star_3.gif'>
<img src='/images/store/icon/icon_star_1.gif'>
我想让它划分为一个字符串数组,把每个<img xxx>分别保存到string[] strArray中,然后对strArray中的每一个字符串处理一下,比如让<img src='/images/store/icon/icon_star_2.gif'>返回2,让<img src='/images/store/icon/icon_star_3.gif'>返回3谢谢大家!!

解决方案 »

  1.   

    两个<img...>中间确定有回车吗?
      

  2.   

    第一个问题:
    Sring[] strArray;
    strArray[0]=@"<img src='/images/store/icon/icon_star_2.gif'>"第二个问题:
    使用正则表达式或者indexof处理获取倒数第五个字符
      

  3.   

    测试完全通过://不管中间有不有空格或换行
    string strAll = "<img src='/images/store/icon/icon_star_2.gif'><img src='/images/store/icon/icon_star_2.gif'><img src='/images/store/icon/icon_star_2.gif'><img src='/images/store/icon/icon_star_3.gif'><img src='/images/store/icon/icon_star_1.gif'>";
    string[] arrStr = Regex.Split(strAll,@"(?<=>)\s*(?=<)");
    foreach (string str in arrStr)
    {
        string temp = Regex.Match(str,@"(?<=icon_star_)\d*(?=\.gif)",RegexOptions.IgnoreCase).Value;
        int n = int.Parse(temp);
        continue;   //设个断点观察n的值
    }
      

  4.   

    请问
    (?<=>)\s*(?=<)
    是什么意思呢?还有这个
    (?<=icon_star_)\d*(?=\.gif)
      

  5.   

    (?<=>)\s*(?=<)
    (?<=>)是指左边需要有>,但不匹配它。
    (?=<)是指右边需要有<,但不匹配它。
    匹配的只是中间的\s*另一个差不多。