java从一个String提取出特定子字符串

例如有代码:<li>本网价:<spanclass=span1>¥42.70</span></li></ul><ul><li>市场价:<s>¥49.00</s></li><... 例如有代码:
<li>本网价:<span class=span1>¥42.70</span></li></ul><ul><li>市 场 价:<s>¥49.00</s></li><li>折 扣:88折<span class=span3> 节省:¥6.30</span></li>

我只需要提取出两个数字: 42.70和 49.00
怎样写代码操作
要注意数字的位数不固定,但是标签的总体结构固定
请给予正则表达式内容,谢
展开
 我来答
点燃闪电
2009-01-29 · TA获得超过540个赞
知道答主
回答量:210
采纳率:0%
帮助的人:0
展开全部
以下是程序,自己运行一下吧。需要改成函数或类请自便。

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

public class Test{
public static void main(String[] args){
String regex="<span class=span1>¥(\\d+[.]\\d+)</span>";
Pattern pattern=Pattern.compile(regex);

String input="<li>本网价:<span class=span1>¥42.70</span></li></ul><ul><li>市 场 价:<s>¥49.00</s></li><li>折 扣:88折<span class=span3> 节省:¥6.30</span></li>";

Matcher matcher=pattern.matcher(input);

// 找 42.70
while(matcher.find()){
System.out.println(matcher.group(1));
}

regex="<s>¥(\\d+[.]\\d+)</s>";
pattern=Pattern.compile(regex);

matcher=pattern.matcher(input);
// 找 49.00
while(matcher.find()){
System.out.println(matcher.group(1));
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuzhi1212
2009-01-27 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:86.8万
展开全部
额```标签的总体结构固定了不是吗?

那就取价格前标签的子结点的VALUE值啊

这个取出来的就是你要的数字了也不存在什么位数 因为他把里面的值直接就给出来了

不过你这个有个¥符号 你可以取到之后用subString去掉

这个方法是基于DOM和JS的不知道楼主有学没
此外以上说的是从网业中提取

要是直接就是JAVA提取而不是一个网业文件

那就直接找¥符号不就好 取¥和</s>之间的部分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贤者智尊
2009-01-27 · TA获得超过119个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:0
展开全部
要用到JSP的技术吧?貌似可以直接用Jsp中的一个东西来搞定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JDK6
2009-01-27
知道答主
回答量:98
采纳率:0%
帮助的人:32.1万
展开全部
建议用正则表达式提取
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式