为什么我的正则表达式不起作用?[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 + "\"");