为什么我的正则表达式不起作用?[Java][Regex][Whitespaceproblem]

为什么我的正则表达式不起作用?[Java][Regex][Whitespaceproblem],java,regex,whitespace,Java,Regex,Whitespace,我定义了一个正则表达式来接受手机号码 例如:909121312333 import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class UserRegistrationProblem { public static void main(String[] args) { System.out.println("E

我定义了一个正则表达式来接受手机号码

例如:
909121312333

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class UserRegistrationProblem 
{
    public static void main(String[] args) 
    {
        System.out.println("Enter Mobile Number");
    
        Scanner sc = new Scanner(System.in);
        String mobile = sc.next();
    
        Pattern pattern = Pattern.compile("^[0-9]{2}\\s[0-9]{10}$");
        Matcher matcher = pattern.matcher(mobile);
    
        if (matcher.matches())
        {
            System.out.println("Valid Mobile Number");
        }
        else
        {
            System.out.println("Invalid Mobile Number");
        }
    }
}
所以,它不起作用了

空格有点问题

我查找了语法,它是正确的。

sc.next()
只读取
“90”


要检查它,请添加
System.out.println(“>”+mobile+”在尝试正则表达式之前尝试打印
System.out.println(mobile);
。在控制台中也打印字符串的长度,以确保没有白线隐藏在其中。使问题变得明显(在询问之前在调试器中单步检查代码也会有此问题).
System.out.println("Invalid Mobile Number: \"" + mobile + "\"");