Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查正则表达式不工作的原因?_Java_Regex - Fatal编程技术网

Java 如何检查正则表达式不工作的原因?

Java 如何检查正则表达式不工作的原因?,java,regex,Java,Regex,此正则表达式找不到任何匹配项。我用其他语言运行它,效果很好。在rubular.com这样的在线正则表达式测试程序中,它非常有效 在java中,它不起作用 java正则表达式有什么不同之处,它们破坏了这样的东西 为什么不起作用?此外,我怎样才能弄清楚他们将来为什么不匹配 样本数据 <link>http://www.wunderground.com/US/MI/Milan.html</link> <description><![CDATA[Temperatu

此正则表达式找不到任何匹配项。我用其他语言运行它,效果很好。在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>

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


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

在Java中,您不希望在表达式的末尾添加分隔符。将其更改为:

Pattern p = Pattern.compile("Temperature: ([0-9.]+)&deg");

(删除正斜杠)

您需要删除
/
字符。Java中的正则表达式引擎将尝试与这些匹配。

删除模式开头和结尾的“/”,对我来说效果很好。

也许你需要避开点<代码>[0-9\.]@Pablo:不,当点出现在字符类中时,它只匹配一个点。我所知道的每一种正则表达式的味道都是如此。@Alan好的,谢谢你的澄清!
Pattern p = Pattern.compile("Temperature: ([0-9.]+)&deg");