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));
}
谁有更好的语句,小弟感谢了
Pattern p = Pattern.compile("(bt.*Title.*)[S[s]]"); // 这里老是不匹配
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group(0));
}
谁有更好的语句,小弟感谢了
解决方案 »
- myeclipse怎么控制程序
- 请问J2EE的四层结构,是否相当于B/S开发的MVC+浏览器?
- Mysql与hibernate3之间的一个问题
- struts2中的prepare问题。
- 数据库单例的一个问题,一直报错,希望大家抽空帮我看看。谢谢
- hibernate一对一映射出错
- HQL的这条语句 " from ShLi Where slsj <= to_date('1999-09-09','yyyy-mm-dd')",错在哪里?该怎么写呢
- 想请教一个问题
- STRUTS高手请进!!!!!
- Spring3.1.0跟hibernate4.1.1整合报错ClassNotFoundException: org.hibernate.cache.CacheP
- SSH 多人开发 配置文件的问题
- 帮忙看下,环境配置问题。
是一定含有<span></span>标签吗
找到获取的字符串的规律 用公共的方法去掉不要的
你这里id=btAsinTitle 有可能变化吧?
直接用字符串截取吧
就这个来看 直接把第一个</span>起 后面的都去掉
然后把最后一个 > 前面的都去掉 这样就得到你想要的了
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方法测试 ,成功了给分!
换成:Pattern p = Pattern.compile("(?<=\\<SPAN id=btAsinTitle>).*?(?=\\</SPAN>)");