我的HTML看起来像:
<td class="price" valign="top"><font color= "blue"> $ 5.93 </font></td>
我试过了:
String result = "";
Pattern p = Pattern.compile("\"blue\"> $ (.*) </font></td>");
Matcher m = p.matcher(text);
if(m.find())
result = m.group(1).trim();
似乎不匹配。
我错过了逃脱角色吗?
答案 0 :(得分:2)
除非在正则表达式级别进行转义,否则$
表示匹配行尾。要获得转义\
所需的单$
,需要在字符串文字中对其进行转义;即两个\
个字符。所以...
... Pattern.compile("\"blue\"> \\$ (.*) </font></td>");
但那些评论说你不应该使用正则表达式解析HTML的人绝对正确 !!除非你想要长期脆弱的代码,否则你的代码应该使用严格或非严格的HTML解析器。
答案 1 :(得分:1)
可能你需要逃避$
(我想,有两个斜线)?