Маткер не содержит все соответствующие группыJAVA

Программисты JAVA общаются здесь
Anonymous
Маткер не содержит все соответствующие группы

Сообщение Anonymous »

У меня есть регуляция, которая будет соответствовать шаблону следующим образом: < /p> my regex выглядит следующим образом: ^(?:@(\ w |-| _ |)*)? \ s*(.*) $
Однако в моем коде совпадение каким-то образом распознает Hello Mike ...... . @Mike не распознан.

Код: Выделить всё

public static void main(String[] args) {
String withAt = "@Mike Hello Mike, how are you doing today?";
String withoutAt = "Hello, I'm Mike.";

matchString(withAt);
matchString(withoutAt);
}

private static void matchString(String messageString) {
System.out.println("Maching String: " + messageString);

Pattern messagePattern = Pattern.compile( "^(?:@(\\w|-|_|)*)?\\s*(.*)$" );
Matcher matcher = messagePattern.matcher(messageString);
if (matcher.find()) {
System.out.println("@: " +  matcher.group(1));
System.out.println("Message: " + matcher.group(2));
}
}

< /code>
Запуск этого мира кода приведет к следующему выводу: < /p>
Maching String: @Mike Hello Mike, how are you doing today?
@:
Message: Hello Mike, how are you doing today?

Maching String: Hello, I'm Mike.
@: null
Message: Hello, I'm Mike.
Вопрос:
Почему withat -string не печатает @: mike на консоли? Где этот мир информации?

Подробнее здесь: https://stackoverflow.com/questions/670 ... hed-groups

Вернуться в «JAVA»