像这样一个字符串
&ch=1005&kind=941,2323,8097&row=20&ShowDate=2&table=1&author=1&all=<url >想要提取出kind对应的几个值,值可以有很多个,甚至是没有值(就是没有kind这项)而且kind出现的位置也不固定...请问各位高人有什么好办法?用正则表达式的话要怎么做呢?
&ch=1005&kind=941,2323,8097&row=20&ShowDate=2&table=1&author=1&all=<url >想要提取出kind对应的几个值,值可以有很多个,甚至是没有值(就是没有kind这项)而且kind出现的位置也不固定...请问各位高人有什么好办法?用正则表达式的话要怎么做呢?
解决方案 »
- div+css
- ZipOutputStream无法关闭ZipEntry
- [讨论]垃圾回收器机制--质疑Think in java
- 一个电气专业的毕业生有可能在计算机方面有所发展吗?希望大哥们进来指导下!!
- 在crontab中应用带java命令的可执行文件现了一些奇怪的问题
- jsp中关于include的中文乱码问题
- 帮忙看看这个问题
- 请教SDK的配置!
- 帮我查一下问题出在哪里,高分重谢!!
- 有人用过WEB SPHERE 4.0吗?安装后为什么启动不了,是密钥问题吗?
- 讨论:doGet,doPost等方法传进去的request,response到底是什么类型,迷惑!!!!!
- 关于数组循环中取余判断提行的问题.
看哪个子字符串是以kind开头的.
CharSequence inputStr = str.subSequence(0, str.length());
String patternStr = "&kind=([^&]+)";
// Compile regular expression
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(inputStr);
while (matcher.find()) {
// Get the match result
String replaceStr = matcher.group();
replaceStr = replaceStr.replaceAll(patternStr,"$1");
System.out.println(replaceStr);
}
String url = "&ch=1005&kind=941,2323,8097&row=20&ShowDate=2&table=1&author=1&all=<url >";
url = url.replaceAll(".+&kind=([^&]+).+", "$1");
String[] result = url.split(",");
for (int i = 0; i < result.length; i++) {
System.out.println(result[i]);
}