此正则表达式未找到任何匹配项。在其他语言中,我运行它,它效果很好。在rubular.com这样的在线正则表达式测试器中,它的效果非常好。如何检查正则表达式不工作的原因?
在java中,它不起作用。
java正则表达式有什么不同,它们会破坏这样的事情?
它为什么不起作用?此外,我怎样才能找出未来为什么他们不匹配?
样本数据
<link>http://www.wunderground.com/US/MI/Milan.html</link>
<description><![CDATA[Temperature: 89.4°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.]+)°/");
Matcher m = p.matcher(this.xml);
if (m.find())
{
this.temperature = Double.valueOf(m.group(1));
}
}
也许你需要逃避点? '[0-9 \。]' –
@Pablo:不,当点出现在字符类中时,它只是匹配一个点。在我知道的每种正则表达式中都是如此。 –
@Alan ok谢谢澄清! –