具有单独部分的字符串的正则表达式

时间:2017-04-06 19:06:49

标签: java regex

我是Java中正则表达式的新手,我必须匹配
的模式 [0-9999][A-Z][0-9999][-][0-99]来自用户的输入。我不太确定如何分开不同的部分!

3 个答案:

答案 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个字符