Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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,我在Java中匹配正则表达式时遇到问题,我的文本是: 温度:9°C(48°F),风向:西南风,风力 速度:19英里/小时,湿度:87%,压力:1018mb,上升,能见度: 好 我的正则表达式是 \bTemperature:[^,]* 匹配代码: import java.util.regex.Matcher; import java.util.regex.Pattern; class Main { public static void main(String[] args) { Pa

我在Java中匹配正则表达式时遇到问题,我的文本是:

温度:9°C(48°F),风向:西南风,风力 速度:19英里/小时,湿度:87%,压力:1018mb,上升,能见度: 好

我的正则表达式是

\bTemperature:[^,]*
匹配代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Main {
  public static void main(String[] args) {
    Pattern p = Pattern.compile("\bTemperature:[^,]*");

    Matcher m = p.matcher("Temperature: 10°C (50°F), Wind Direction: South South Easterly, Wind Speed: 25mph, Humidity: 78%, Pressure: 1014mb, Falling, Visibility: Good");

    if(m.find())
    {
      System.out.println(m.group());
    }

  }
}

它不输出任何内容。

尝试使用
Pattern p=Pattern.compile(“\\b温度:[^,]*”以退出

正如用户John Bollinger在评论中所说:

模式类需要读取和解释反斜杠, 但是字符串文本中的反斜杠可以由 Java编译器。编译器将双反斜杠转换为双反斜杠 单反斜杠,正如模式所需

这两个反斜杠将被编译为一个


因此,当您从文件或控制台读取正则表达式模式字符串时,只需要一个反斜杠。

尝试使用
pattern p=pattern.compile(“\\b温度:[^,]*”以退出

正如用户John Bollinger在评论中所说:

模式类需要读取和解释反斜杠, 但是字符串文本中的反斜杠可以由 Java编译器。编译器将双反斜杠转换为双反斜杠 单反斜杠,正如模式所需

这两个反斜杠将被编译为一个


因此,当您从文件或控制台读取regex模式字符串时,您只需要一个反斜杠。

为了澄清:您需要一个反斜杠来由
模式
类读取和解释,但是字符串文本中的反斜杠由Java编译器进行解释。编译器将双反斜杠转换为单反斜杠,正如
模式
所要求的那样。为了澄清:您需要一个反斜杠才能被
模式
类读取和解释,但是字符串文本中的反斜杠由Java编译器解释。编译器将双反斜杠转换为单反斜杠,正如
模式
所要求的那样。