如何创建一个接受java中逗号分隔字符串组合的正则表达式

时间:2016-08-04 10:08:15

标签: java regex

嗯,我希望我的问题涵盖了要点,但让我详细说明。我需要创建一个正则表达式,接受逗号分隔字符串的一部分或它的组合。

例如:

如果字符串是:

  狗,猫,老鼠

它应该接受如下组合:

  1. 大鼠
  2. 狗,猫(和反面)
  3. 狗,老鼠(和反面)
  4. cat,rat(和反向)
  5. 狗,猫,老鼠(以及不同的顺序)
  6. 感谢任何可以帮助我的人。

1 个答案:

答案 0 :(得分:1)

正如@HamZa所建议的那样,用正则表达式分割字符串是一种很好的方法。我们可以将允许的标记放入集合中,然后确保集合中存在所有其他标记。

static boolean checkCombination(String allowed, String combination) {

  // Build set of allowed tokens
  Set<String> allowedSet = new HashSet<>();
  for (String str : allowed.split("\\s*,\\s*"))
    allowedSet.add(str);

  // Check to see if there are any illegal tokens
  for (String str : combination.split("\\s*,\\s*"))
    if (!allowedSet.contains(str))
      return false;

  // If nothing illegal is found, it is a valid combination
  return true;

}