怎么返回一个字符串的子字符串,这个子字符串是变化的

duanhuei 2010-06-02 10:29:48
比如说,
String line = <a id="nu-f-106" class="user" href="/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3">;

我想得到这个子串/danger_dave,而这个子串是变化的,我要得到所有的这些字串,怎么实现,请教各位高手。
...全文
138 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
duanhuei 2010-06-03
  • 打赏
  • 举报
回复
非常感谢各位,问题已经解决!
micsolaris 2010-06-02
  • 打赏
  • 举报
回复

/**
比如说,
String line = <a id="nu-f-106" class="user" href="/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3">;

我想得到这个子串/danger_dave,而这个子串是变化的,我要得到所有的这些字串,怎么实现,请教各位高手。
*/

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test{
public static void main(String[] args){
String line = "<a id=\"nu-f-106\" class=\"user\" href=\"/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3\">";
String key = "href";
String value = getValue(line,key);
System.out.println(value);
}

public static String getValue(String line,String key){
String result = null;
String regex = key + "=\"([^;\"]*)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(line);
if(matcher.find()){
result = matcher.group(1);
}

return result;
}
}
kiss601459202 2010-06-02
  • 打赏
  • 举报
回复
修正5楼的错误 String 不能“”里面有“”,“”里面用‘’
kiss601459202 2010-06-02
  • 打赏
  • 举报
回复
给一个不用正则 却非常好用的办法

public static String getString(){
String line = "<a id='nu-f-106' class='user' href='/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3'>";
String result = line.substring(line.indexOf("href='")+6,line.indexOf("'>"));
return result;
}
Nature_2009 2010-06-02
  • 打赏
  • 举报
回复

String line = "<a id=\"nu-f-106\" class=\"user\" href=\"/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3\">";

String value = null;

java.util.regex.Matcher m = java.util.regex.Pattern.compile("[^\";]*;").matcher(line);

if (m.find()) {

value = m.group(0);

}

System.out.println(value);
zhuzhusany 2010-06-02
  • 打赏
  • 举报
回复

String line = "<a id=\"nu-f-106\" class=\"user\" href=\"/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3\">";
String regex = "href=\"([^\";]*);";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(line);
while(m.find()) {
System.out.println(m.group(1));
}
hjjk123 2010-06-02
  • 打赏
  • 举报
回复
用正则

如果有规律的话!可以匹配出来!!
梦_枫 2010-06-02
  • 打赏
  • 举报
回复
用正则,
或者用字符串匹配吧。
String str = line.substring(line.indexof("href=") + 1, indexof(";"));
i李小武 2010-06-02
  • 打赏
  • 举报
回复
用正则表达式吧!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧