Java比较字符串与正则表达式 - while循环

Col*_*747 3 java regex while-loop java.util.scanner

我希望用户输入一个字符串,如果该字符串与我的正则表达式不匹配,那么我希望输出一条消息,并且用户再次输入一个值。

问题是,即使字符串与正则表达式匹配,它也会将其视为不匹配。

我的正则表达式:这应该等于 -Name, Name

[[A-Z][a-zA-Z]*,\s[A-Z][a-zA-Z]*]

我的while循环:

  System.out.println("Enter the student's name in the following format - surname, forename: ");  studentName = input.next();
  while (!studentName.equals("[[A-Z][a-zA-Z]*,\\s[A-Z][a-zA-Z]*]")) {
    System.out.println("try again");
    studentName = input.next();
  }
Run Code Online (Sandbox Code Playgroud)

phl*_*tos 5

这些equals方法检查字符串等效性,而不是匹配正则表达式。

只需替换equalsmatches. 您还应该删除外部方括号。