繁体   English   中英

Java正则表达式,需要转义字符的帮助

[英]Java regex, need help with escape characters

我的HTML看起来像:

<td class="price" valign="top"><font color= "blue">&nbsp;&nbsp;$&nbsp;      5.93&nbsp;</font></td>

我试过了:

String result = "";
        Pattern p =  Pattern.compile("\"blue\">&nbsp;&nbsp;$&nbsp;(.*)&nbsp;</font></td>");

        Matcher m = p.matcher(text);

        if(m.find())
            result = m.group(1).trim();

似乎不匹配。

我想念逃脱符吗

除非在正则表达式级别转义,否则$表示与行尾匹配。 为了获得转义$所需的单个\\需要在String文字中进行转义; 即两个\\字符。 所以...

... Pattern.compile("\"blue\">&nbsp;&nbsp;\\$&nbsp;(.*)&nbsp;</font></td>");

但是那些评论您不应该使用正则表达式来解析HTML的人是绝对正确的 除非您需要长期脆弱的代码,否则您的代码应使用严格或非严格的HTML解析器。

可能您需要转义$ (我认为,请加上两个斜线)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM