用正则表达式匹配中间有逗号的字符串

时间:2018-06-24 02:53:15

标签: java regex

我想尝试使用正则表达式来匹配我的这种字符串,例如

EntityManagers

我可以采用哪种方式处理这种情况?匹配的输入示例可以为EntityManagerFactory

我尝试了“。 \ d +,\ d +。”和“。 [0-9],[0-9]。”。最后尝试使用“ [0-9] +,[0-9] +”,这表示有更多数字,似乎可以使用

使用最后一个解决了我的问题,对不起您的努力。

1 个答案:

答案 0 :(得分:0)

matches(regex)方法匹配整个字符串。

您可以更改模式以匹配整个字符串。

 if (cadena.matches(".*[0-9],[0-9].*")){
      // Do Something
 }

或者您可以使用find在字符串中的任意位置查找数字逗号:

 Pattern pattern = Pattern.compile("[0-9],[0-9]");
 if (pattern.matcher(cadena).find()){
      // Do Something
 }

如果您想在if块中实际使用与逗号两边都匹配的数字,则可以使用()捕获组并使用Matcher对其进行引用。

    String cadena = "2,2345";
    Pattern pattern2 = Pattern.compile("([0-9]+),([0-9]+)");
    Matcher matcher = pattern2.matcher(cadena);
    if (matcher.find()){
        System.out.println("Found " + matcher.group(1) + " - " + matcher.group(2));
    }

    // Prints: Found 2 - 2345