Java 正则表达式匹配 space 的扫描仪问题

Java Scanner issue with a regex matching a space

我想要一个 space 字与字之间。我曾尝试在 Java 中使用 Pattern.compile("a\sb") 但它在 a b.

中失败了

这是我使用的代码:

String str; 
Scanner sc=new Scanner(System.in); 
System.out.println("Enter String");  
str=sc.next(); 
Pattern pat = Pattern.compile("a\sb"); 
Matcher m = pat.matcher(str);    
if( m.find() ) { 
     System.out.println("Success"); 
} else { 
     System.out.println("Failed"); 
}

你应该阅读 documentation:

A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace.

所以,尝试将其用作

Scanner sc=new Scanner(System.in).useDelimiter("[\r\n]+");

这样,我们将使用换行符进行标记化。

看看demo