我试图使用Jsoup解析HTML文件。在这个HTML中有一个我要删除的特殊字符,(€),这就是它原来的样子:
<span class="price-value">
49,99 €
</span>
但是,Netbeans在打印该元素时会显示:
49.99 ?
因此,我不能这样做:
price.replace( "€", "" ).replace( ",", "." ).trim();
这两个都没有:
price.replace( "\\?", "" ).replace( ",", "." ).trim();
我该怎么办?
答案 0 :(得分:0)
从here修改:
要匹配单个字符,您只需将它们包含在字符类中,可以是文字或
\u20AC
语法
欧元的unicode是\u20AC
。
注意:我不确定为什么它会显示为?
,但这可能只是因为它不是ASCII,而且可能在字体中缺失。
答案 1 :(得分:0)
使用此 - &gt;
<span class="price-value">
49,99 €
</span>
它是HTML中的符号表示
答案 2 :(得分:0)
Netbeans在打印该元素时显示了这一点
几乎可以肯定,这是因为您的NetBeans控制台尚未配置为支持Unicode字符,这就是您被误导的原因。有关解决方案,请参阅:How to change default encoding in NetBeans 8.0
所以,文档很好,正则表达式可以工作,而且不需要改变任何其他内容。
以下是正确解析原始文档,替换欧元符号并返回49.99
的最小工作示例。
Element doc = Jsoup.parse("<html><body><span class=\"price-value\">49,99 €</span></body></html>");
Element span = doc.select("span").get(0);
System.out.println( span.text().replace("€", "").replace(",", ".").trim() );