Поиск строки регулярного выражения в Java - PullRequest
0 голосов
/ 19 января 2011

Я знаю, что это можно сделать разными способами, но мне интересно, каково будет регулярное выражение для выбора всех строк, не содержащих конкретной подстроки, скажем, GDA из таких строк, как GADSA, GDSARTCC,, THGDAERY.

Ответы [ 5 ]

2 голосов
/ 19 января 2011

Вы можете сделать отрицательный взгляд

"^((?!GAD).)*$"
2 голосов
/ 19 января 2011

Вам не нужно регулярное выражение. Просто используйте string.contains("GDA"), чтобы увидеть, содержит ли строка определенную подстроку. Он вернет false, если нет.

1 голос
/ 19 января 2011

Если вы вводите одну длинную строку, вам нужно решить, как вы определяете подстроку.Если он разделен пробелами, то:

String[] split = mylongstr.split(" ");
for (String s : split) {
  if (!s.contains("GDA")) {
    // do whatever
  }
}
0 голосов
/ 19 января 2011

Дайте этому шанс:

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());
}
0 голосов
/ 19 января 2011
String regex = ".*GDA.*";

List<String> testStrings = populateStrings();

for (String s : testStrings)
{
    if (!s.matches(regex))
        System.out.println("String " + s + " does not match " + regex);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...