此正则表达式找不到任何匹配项。我用其他语言运行它,效果很好。在诸如rubular.com之类的在线正则表达式测试器中,它的效果很好。

在Java中,它不起作用。

Java正则表达式破坏这样的东西有何不同?

为什么不起作用?此外,我将来如何找出它们为什么不匹配?

样本数据

<link>http://www.wunderground.com/US/MI/Milan.html</link>
<description><![CDATA[Temperature: 89.4&deg;F | Humidity: 62% | Pressure: 29.65in      (Steady) | Conditions: Clear | Wind Direction: NW | Wind Speed: 1.6mph<img     src="http://server.as5000.com/AS5000/adserver/image?ID=WUND-00070&C=0" width="0" height="0"     border="0"/>]]>
</description>


和代码

protected void parseTemperature()
{

    Pattern p = Pattern.compile("/Temperature: ([0-9.]+)&deg/");
    Matcher m = p.matcher(this.xml);

    if (m.find())
    {
         this.temperature = Double.valueOf(m.group(1));
    }
}

最佳答案

删除正则表达式周围的/字符。

Pattern.compile采用原始表达式,而不包装在/中。

关于java - 如何检查为什么正则表达式不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6784775/

10-09 06:22
查看更多