首页 新闻 会员 周边

正则表达式问题

0
悬赏园豆:10 [已解决问题] 解决于 2017-10-17 11:41

ed2k://|sadasd213213qwewqe`ed2k://sadasdqwewqe213ewr`ed2k://sadasdqwewqe213ewr

上面的字符串匹配出多个以ed2k://开头的集合,正则该如何写?

码农成长日记的主页 码农成长日记 | 初学一级 | 园豆:186
提问于:2017-10-16 11:22
< >
分享
最佳答案
0
        static void Main(string[] args)
        {
            Regex regx = new Regex("(?=ed2k://)((\\s|.)+?)((?=ed2k://)|$)");
            MatchCollection col= regx.Matches("ed2k://|sadasd213213qwewqe`ed2k://sadasdqwewqe213ewr`ed2k://sadasdqwewqe213ewr");
            foreach (Match item in col)
            {
                Console.WriteLine(item.Value);
            }
            Console.WriteLine("end----------------------------------------");
            Console.ReadKey();
        }

结果:

收获园豆:10
海之殇 | 菜鸟二级 |园豆:500 | 2017-10-17 11:01
其他回答(2)
0

必须要正则表达式?  还是只要找出里面的集合就行了     

Smile灬Lucky | 园豆:163 (初学一级) | 2017-10-16 14:17

不要用正则也行,只要有办法转换成多个ed2k开头的字符串

支持(0) 反对(0) 码农成长日记 | 园豆:186 (初学一级) | 2017-10-16 14:29

@踏雪wu痕: 用split分割,以`进行分割就行了,分割之后得到的集合就是ed2k开头的

支持(0) 反对(0) Smile灬Lucky | 园豆:163 (初学一级) | 2017-10-16 14:31

@Smile灬Lucky: 原本的字符串中有很多`,我举得例子不太准确

支持(0) 反对(0) 码农成长日记 | 园豆:186 (初学一级) | 2017-10-16 14:39

@踏雪wu痕:你得看你的字符串是否有规律,想你举例的这种都有规律的,看中间是否有分割的字符

支持(0) 反对(0) Smile灬Lucky | 园豆:163 (初学一级) | 2017-10-16 14:44
0

public class Temp20171016 {
    public static void main(String[] args) {
        String str="ed2k://|sadasd213213qwewqe`ed2k://sadasdqwewqe213ewr`ed2k://sadasdqwewqe213ewr";
        String[] strs=str.split("ed2k://");
        List<String> res=new ArrayList<String>();
        for(String s:strs){
            if(s.length()!=0){
                res.add("ed2k://"+s);
            }
        }
        for(String strList:res){
            System.out.println(strList);
        }
    }
}

如是我所闻 | 园豆:204 (菜鸟二级) | 2017-10-16 16:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册