有一个字符串,字符串里面的具体名称之类的会改变,
但是有13个以“http://”开头以“.mp3”结尾的子串,
我需要将13个以“http://”开头以“.mp3”结尾的子串提取出来,
请问应该怎么做呢?
如果可以,麻烦大侠们使用正则表达式帮我写一个函数,返回相应的13个子串的数组。
函数格式:public static string[] getStrings(string strinput)
我不会正则表达式,谢谢指教^_^
传进的参数示例如下:#EXTM3U
#EXTINF:0,05_不一样的再见.mp3
http://202.192.157.52/第三服务器/谭咏麟/不一样的谭咏麟_(二部曲)/05_不一样的再见.mp3#EXTINF:0,明日约定.MP3
http://202.192.157.52/第一服务器/张学友/祝福/明日约定.MP3#EXTINF:0,track07.mp3
http://music.stu.edu.cn/OST/Kenshin浪客剑心/维新志士镇魂歌 OST/track07.mp3#EXTINF:0,卡拉伴奏-谢雨欣-木偶.mp3
http://music.stu.edu.cn/Karaoke/女歌手/谢雨欣/卡拉伴奏-谢雨欣-木偶.mp3#EXTINF:0,14.Letters.mp3
http://music.stu.edu.cn/korjap/宇多田光《Single Collection Vol.1》/Single Collection Vol.1/14.Letters.mp3#EXTINF:0,00-越来越.mp3
http://music.stu.edu.cn/newserver/零点乐队/越来越/00-越来越.mp3#EXTINF:0,16. 花生骚 - 梅艳芳, 王菲.mp3
http://music.stu.edu.cn/newserver/合辑/林夕字传2/16. 花生骚 - 梅艳芳, 王菲.mp3#EXTINF:0,暧昧 杨丞琳 - 伴奏.wma
http://music.stu.edu.cn/Karaoke/K歌之王/最新伴奏合辑 070407/暧昧 杨丞琳 - 伴奏.wma#EXTINF:0,05. 不認不認還需認.mp3
http://music.stu.edu.cn/newserver/杨千桦/Meridian/05. 不認不認還需認.mp3#EXTINF:0,09郑秀文_插曲.mp3
http://music.stu.edu.cn/newserver/十大中文金曲/1999香港十大中文金曲/09郑秀文_插曲.mp3#EXTINF:0,39陈百强 - 不.mp3
http://music.stu.edu.cn/newserver/合辑/宝丽金 - 怀旧金曲/39陈百强 - 不.mp3#EXTINF:0,小木船.mp3
http://music.stu.edu.cn/Server2008/许哲佩/气球/小木船.mp3

解决方案 »

  1.   

    楼主给的例子中共有11个符合条件的public static string[] getStrings(string strinput)
    {
        List<string> list = new List<string>();
        Regex reg = new Regex(@"(?i)http://(?:(?!\.mp3).)*\.mp3");
        MatchCollection mc = reg.Matches(strinput);
        foreach (Match m in mc)
        {
            list.Add(m.Value);
        }
        return list.ToArray();
    }
      

  2.   

    不必 (?:(?!\.mp3).)* 这么麻烦,用 .*? 就好了。
    另外,既然用了 (?i),顺便加上 (?n),就可以避免用 (?:...) 了。using System;
    using System.Collections.Generic;
    using System.Text.RegularExpressions;class Program
    {
      public static string[] GetMusics(string input)
      {
        List<string> list = new List<string>();
        foreach (Match m in Regex.Matches(input, @"(?sin)http://.*?\.(mp3|wma|rm)"))
        {
          list.Add(m.Value);
        }
        return list.ToArray();
      }  static void Main()
      {
        string input = @"#EXTM3U 
    #EXTINF:0,05_不一样的再见.mp3 
    http://202.192.157.52/第三服务器/谭咏麟/不一样的谭咏麟_(二部曲)/05_不一样的再见.mp3 #EXTINF:0,明日约定.MP3 
    http://202.192.157.52/第一服务器/张学友/祝福/明日约定.MP3 #EXTINF:0,track07.mp3 
    http://music.stu.edu.cn/OST/Kenshin浪客剑心/维新志士镇魂歌 OST/track07.mp3 #EXTINF:0,卡拉伴奏-谢雨欣-木偶.mp3 
    http://music.stu.edu.cn/Karaoke/女歌手/谢雨欣/卡拉伴奏-谢雨欣-木偶.mp3 #EXTINF:0,14.Letters.mp3 
    http://music.stu.edu.cn/korjap/宇多田光《Single Collection Vol.1》/Single Collection Vol.1/14.Letters.mp3 #EXTINF:0,00-越来越.mp3 
    http://music.stu.edu.cn/newserver/零点乐队/越来越/00-越来越.mp3 #EXTINF:0,16. 花生骚 - 梅艳芳, 王菲.mp3 
    http://music.stu.edu.cn/newserver/合辑/林夕字传2/16. 花生骚 - 梅艳芳, 王菲.mp3 #EXTINF:0,暧昧 杨丞琳 - 伴奏.wma 
    http://music.stu.edu.cn/Karaoke/K歌之王/最新伴奏合辑 070407/暧昧 杨丞琳 - 伴奏.wma #EXTINF:0,05. 不認不認還需認.mp3 
    http://music.stu.edu.cn/newserver/杨千桦/Meridian/05. 不認不認還需認.mp3 #EXTINF:0,09郑秀文_插曲.mp3 
    http://music.stu.edu.cn/newserver/十大中文金曲/1999香港十大中文金曲/09郑秀文_插曲.mp3 #EXTINF:0,39陈百强 - 不.mp3 
    http://music.stu.edu.cn/newserver/合辑/宝丽金 - 怀旧金曲/39陈百强 - 不.mp3 #EXTINF:0,小木船.mp3 
    http://music.stu.edu.cn/Server2008/许哲佩/气球/小木船.mp3 ";
        foreach (string s in GetMusics(input))
        {
          Console.WriteLine(s);
        }
      }
    }