有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

正则表达式Java如何检查值之间是否不存在逗号字符?

对于给定的字符串,我想检查在任何数字和任何文字字符之间是否存在逗号分隔符,并且仅按此顺序

例如: Mo-Do 10:00-20:00 Fr-Sa 10:00-21:00

如果,存在于20:00Fr-Sa之间,则应给出true/false。在解析之前,我总是删除空白


共 (2) 个答案

  1. # 1 楼答案

    您可以使用下面提到的正则表达式来检查所提到的模式是否存在

    String input = "Mo-Do 10:00-20:00 Fr-Sa 10:00-21:00";
    
    String inputWithoutWhiteSpace = input.replaceAll("\\s", "");
    
    String pattern = "(.*)([0-9][0-9]:[0-9][0-9],[A-Z][a-z]-[A-Z][a-z])(.*)";
    
    boolean patternExist = inputWithoutWhiteSpace.matches(pattern);
    
  2. # 2 楼答案

    String withComma = "Mo-Do 10:00-20:00, Fr-Sa 10:00-21:00".replace(" ", "");
    String withoutComma = "Mo-Do 10:00-20:00 Fr-Sa 10:00-21:00".replace(" ", "");
    
    Pattern pattern = Pattern.compile(".*\\d,[A-Z].*");
    
    System.out.println(pattern.matcher(withComma).matches()); //true
    System.out.println(pattern.matcher(withoutComma).matches()); //false
    

    如果输入字符串包含任意数量的字符,后跟(按此顺序)则返回true

    1. 一个数字\\d
    2. 逗号,
    3. 大写字母[A-Z]
    4. 任意数量的字符.*