Код: Выделить всё
@Mike Hello Mike, how are you doing today?Код: Выделить всё
Hello, I'm Mike.
Однако в моем коде совпадение каким-то образом распознает 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