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。
我想要一个 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。