Java中的正则表达式字符串搜索

时间:2011-01-18 22:55:13

标签: java regex

我知道这可以通过多种方式完成,但我很好奇正则表达式将挑选出所有不包含特定子字符串的字符串,比如GDA 字符串,如GADSA,GDSARTCC,THGDAERY。

5 个答案:

答案 0 :(得分:2)

您不需要正则表达式。只需使用string.contains("GDA")查看字符串是否包含特定的子字符串。如果没有,它将返回false

答案 1 :(得分:2)

你可以做负面的解释

"^((?!GAD).)*$"

答案 2 :(得分:1)

如果您的输入是一个长字符串,那么您必须决定如何定义子字符串。如果它被空格分隔,那么:

String[] split = mylongstr.split(" ");
for (String s : split) {
  if (!s.contains("GDA")) {
    // do whatever
  }
}

答案 3 :(得分:0)

String regex = ".*GDA.*";

List<String> testStrings = populateStrings();

for (String s : testStrings)
{
    if (!s.matches(regex))
        System.out.println("String " + s + " does not match " + regex);
}

答案 4 :(得分:0)

试一试:

java.util.regex.Pattern p = java.util.regex.Pattern.compile("(?!\\w*GDA\\w*)\\b\\w+\\b");
java.util.regex.Matcher m = p.matcher("GADSA, GDSARTCC, , THGDAERY");
while (m.find()) {
    System.out.println("Found: " + m.group());
}