问题描述
- 有一段文本,我想用正则表达式重启中抽取出相应的信息
-
"zhushou360://type=apk&marketid=10000001&refer=thirdlink&name=酷狗音乐&icon=http://p0.qhimg.com/t01db7bc887026858aa.png&appmd5=f16bab52e99a003e718ce4ea3893fd5f&softid=433&appadb=&url=http://shouji.360tpcdn.com/151124/f16bab52e99a003e718ce4ea3893fd5f/com.kugou.android_7994.apk 这段文本我要抽取出name和url,这么写,如果是整个匹配的话这么写,弄了一天没弄对,大神求帮助啊
解决方案
String str = "zhushou360:/Kpe=apk&marketid=10000001&refer=thirdlink&name=酷狗音乐&icon=http://p0.qhimg.com/t01db7bc887026858aa.png&appmd5=f16bab52e99a003e718ce4ea3893fd5f&softid=433&appadb=&url=http://shouji.360tpcdn.com/151124/f16bab52e99a003e718ce4ea3893fd5f/com.kugou.android_7994.apk";
String strsplit[] = str.split("&");
for (int i=0;i<strsplit.length;i++){
if(strsplit[i].contains("name=") ||strsplit[i].contains("url=")){
//这里为了防止url里含有=号,所有我们要从第一个等号向后截取,用到indexOf方法,截取到之后再用indexOf("=")+1把=去掉,然后调用substring方法就可以拿到你要的值了;
System.out.print(strsplit[i].substring(strsplit[i].indexOf("=")+1));
}
} 望采纳
解决方案二:
由于时间关系,简单的写了下,没有用正则表达式,帮你写了一个方法。能达到你目前的需求,不知道对你有没有帮助
String str = "zhushou360://type=apk&marketid=10000001&refer=thirdlink&name=酷狗音乐&icon=http://p0.qhimg.com/t01db7bc887026858aa.png&appmd5=f16bab52e99a003e718ce4ea3893fd5f&softid=433&appadb=&url=http://shouji.360tpcdn.com/151124/f16bab52e99a003e718ce4ea3893fd5f/com.kugou.android_7994.apk";
String strsplit[] = str.split("&");
for (int i=0;i<strsplit.length;i++){
if(strsplit[i].contains("name=") ||strsplit[i].contains("url=")){
System.out.print(strsplit[i]+"");
}
}
解决方案三:
name=.+?&
url=.+
时间: 2024-08-01 14:19:01