一个简单的问题, java正则表达式, 提取字符

reelcol 2008-01-08 12:30:55
字符串是:
“<a href=\"/watch?v=o6sdfIyVM\" rel=\"nofollow\" onclick=\"_hbLink('ReR<a href=\"/watch?v=o328djdVb\" rel=\"nofollow\" onclic<a href=\"/watch?v=sdfgVa0FIyVs\" rel=\"nofollow\" onclick=\"_hbLink('ReR<a href=\"/watch?v=38dkj0FIydM\" rel=\"nofollow\" onclic”


想提取出来
o6sdfIyVM
o328djdVb
sdfgVa0FIyVs
38dkj0FIydM

这个v=后面的字符。



public static void main(String[] args) {
Pattern p = Pattern.compile("watch\\?v=.*\"\\s* rel=");
String s = "上面的字符";
Matcher match = p.matcher(s);
if ( match.find() ) {
System.out.println(match.group(0));
System.out.println(match.group(1));
}
}


但是不行, 请高手帮我一下。
...全文
2486 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongxiao111 2012-10-18
  • 打赏
  • 举报
回复
看一下哦
hengzhan 2009-03-03
  • 打赏
  • 举报
回复

Pattern p=Pattern.compile("(?<=watch\\?v=)(\\w)*(?=\")");
Matcher m=p.matcher(sql);
String re="";
while(m.find()){
re+=m.group()+'\n';
}

believefym 2008-01-08
  • 打赏
  • 举报
回复
楼主那个哪来的group(1)啊

"(?<=\\"watch\\?).*?(?=\\")"
match.group();
tonyMCM 2008-01-08
  • 打赏
  • 举报
回复
学习 ~~
老紫竹 2008-01-08
  • 打赏
  • 举报
回复
  public static void main(String[] args) {
String s = "<a href=\"/watch?v=o6sdfIyVM\" rel=\"nofollow\" onclick=\"_hbLink('ReR <a href=\"/watch?v=o328djdVb\" rel=\"nofollow\" onclic <a href=\"/watch?v=sdfgVa0FIyVs\" rel=\"nofollow\" onclick=\"_hbLink('ReR <a href=\"/watch?v=38dkj0FIydM\" rel=\"nofollow\" onclic";
Pattern p = Pattern.compile("watch\\?v=(.*?)\"");
Matcher match = p.matcher(s);
while ( match.find() ) {
// System.out.println(match.group(0));
System.out.println(match.group(1));
}
}

62,623

社区成员

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

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