java正则表达式问题(高分急求-雪地跪求)

「已注销」 2010-03-03 11:42:09
String s = "<SPAN id=btAsinTitle>The Phantom [Blu-ray] (1996)</SPAN></H1></SPAN></H1></SPAN></H1></SPAN></H1>";

我想只输出The Phantom [Blu-ray] (1996)这段内容,但是用下面的语句总是把全句就匹配完了
Pattern p = Pattern.compile("(bt.*Title.*)[S[s]]"); // 这里老是不匹配
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group(0));
}
谁有更好的语句,小弟感谢了
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
岁月之梦 2010-03-03
  • 打赏
  • 举报
回复
这个分不高 呵呵 应该给100分
岁月之梦 2010-03-03
  • 打赏
  • 举报
回复
String s = " <span id=btAsinTitle>The Phantom [Blu-ray] (1996) </span> <h1> <span>aaaa </span> </h1> ";
Pattern p = Pattern.compile("<span id=btAsinTitle>([^>]*)</span>");
Matcher matcher = p.matcher(s);
boolean matchFound = matcher.find();
String content = "";
if (matchFound) {
// Get all groups for this match
for (int i=1; i<= matcher.groupCount(); i++) {
String groupStr = matcher.group(i);
content = groupStr;
}
}
System.out.println(content);


放到main方法测试 ,成功了给分!
wanli209 2010-03-03
  • 打赏
  • 举报
回复
你这个字符串是怎么得来的
是一定含有<span></span>标签吗
找到获取的字符串的规律 用公共的方法去掉不要的
你这里id=btAsinTitle 有可能变化吧?
直接用字符串截取吧
就这个来看 直接把第一个</span>起 后面的都去掉
然后把最后一个 > 前面的都去掉 这样就得到你想要的了
ychzxx 2010-03-03
  • 打赏
  • 举报
回复
这句 Pattern p = Pattern.compile("(bt.*Title.*)[S[s]]"); // 这里老是不匹配
换成:Pattern p = Pattern.compile("(?<=\\<SPAN id=btAsinTitle>).*?(?=\\</SPAN>)");

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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