Java Regex - нужна помощь в подборе номера - PullRequest
0 голосов
/ 21 ноября 2011

Я пытаюсь сопоставить все значения 1 до 18 из строки 24-15-7-49-63-2 с помощью регулярных выражений. Раньше я использовал регулярные выражения для общего назначения, но я понятия не имею, как это сделать.

1 Ответ

4 голосов
/ 21 ноября 2011

Сложность в том, что вы не можете легко определить диапазоны с помощью регулярных выражений.Но это может сделать то, что вы хотите:

\b([1-9]|1[0-8])\b

Вы можете увидеть это в действии здесь: http://regexr.com? 2v8jj

Вот пример в java:

String text = "24-15-7-49-63-2";
String pattern = "\\b([1-9]|1[0-8])\\b";

Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);
while (matcher.find()) {
    System.out.println(matcher.group());
}

Выходы:

15
7
2

Редактировать: На основе комментария вы можете получить уникальные совпадения, используя этот шаблон:

\b([1-9]|1[0-8])\b(?!.*\b\1\b.*)

В действии: http://regexr.com? 2v8х

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...