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
怎样写代码操作
要注意数字的位数不固定,但是标签的总体结构固定
请给予正则表达式内容,谢 展开
<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
怎样写代码操作
要注意数字的位数不固定,但是标签的总体结构固定
请给予正则表达式内容,谢 展开
4个回答
展开全部
以下是程序,自己运行一下吧。需要改成函数或类请自便。
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));
}
}
}
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));
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
额```标签的总体结构固定了不是吗?
那就取价格前标签的子结点的VALUE值啊
这个取出来的就是你要的数字了也不存在什么位数 因为他把里面的值直接就给出来了
不过你这个有个¥符号 你可以取到之后用subString去掉
这个方法是基于DOM和JS的不知道楼主有学没
此外以上说的是从网业中提取
要是直接就是JAVA提取而不是一个网业文件
那就直接找¥符号不就好 取¥和</s>之间的部分
那就取价格前标签的子结点的VALUE值啊
这个取出来的就是你要的数字了也不存在什么位数 因为他把里面的值直接就给出来了
不过你这个有个¥符号 你可以取到之后用subString去掉
这个方法是基于DOM和JS的不知道楼主有学没
此外以上说的是从网业中提取
要是直接就是JAVA提取而不是一个网业文件
那就直接找¥符号不就好 取¥和</s>之间的部分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要用到JSP的技术吧?貌似可以直接用Jsp中的一个东西来搞定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询