Java разделить регулярное выражение строки с пробелом (за исключением случаев, когда слева и справа было число или -)

У меня есть эта строка, как разделить 5-28 14:00 - 5-28 18:00 the60s (.corp). Я хочу разделить его пробелами, кроме случаев, когда пробел имеет номер или - вокруг них.

Результат, который я хочу, был:

1. how 
2. to
3. split
4. 5-28 14:00 - 5-28 18:00
5. the60s(.corp)

Благодарю.

Вот мой код:

String str = "how do I split 5-28 14:00 - 5-28 18:00 the60s(.corp)";
    str = str.replaceAll("\\s+(?!(?=-|\\d+))", "@");

Сначала я заменяю правый пробел на @, затем разделяю строку на @. Но это не работает.

1 ответ

Решение

Вы можете использовать lookarounds для этого:

(?<![-\d])\s+|\s+(?![\d-])

Код Демо

Другие вопросы по тегам