我是Java中正则表达式的新手,我必须匹配
的模式
[0-9999][A-Z][0-9999][-][0-99]
来自用户的输入。我不太确定如何分开不同的部分!
答案 0 :(得分:0)
您可以使用此正则表达式[0-9]{1,4}[A-Z][0-9]{1,4}[-][0-9]{1,2}
:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please enter a String that match [0-9999][A-Z][0-9999][-][0-99]");
String input = scan.nextLine();
//If your input match with your String, then print Match, else Not match
System.out.println(input.matches("[0-9]{1,4}[A-Z][0-9]{1,4}[-][0-9]{1,2}") ?
"Match" : "Not Match");
}
<强>阐释强>
[0-9]{1,4} # A number between 0 and 9999
[A-Z] # An alphabetic A to Z
[0-9]{1,4} # A number between 0 and 9999
[-] # -
[0-9]{1,2} # A number between 0 and 99
答案 1 :(得分:0)
你必须在正则表达式中使用组,如下所示。
@ExceptionHandler(LoginIsBusyException.class)
public ResponseEntity<String>
handleException(LoginIsBusyException exe) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Login is busy");
}
然后,您将能够使用Matcher.group()查找群组。
你可以看到它在这里工作
https://regex101.com/r/hW3O5Z/1
您可以在
了解更多相关信息https://docs.oracle.com/javase/tutorial/essential/regex/groups.html https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
答案 2 :(得分:0)
正则表达式模式如下:
r'[0-9]{1,4}[A-Z][0-9]{1,4}-[0-9]{1,2}'
方括号定义集合,因此[0-9]将找到0到9之间的任何数字
花括号是量词,因此{1,4}匹配查找之前的任何内容的下一个1到4个匹配
要匹配破折号,我们只需输入字符
即可所以整个正则表达式会在0到9之间查找1到4个字符,然后是A和Z之间的字符,然后是0到9之间的1到4个字符,然后是0到9之间的1到2个字符