Разделить строку по алфавиту и цифре

1

Кто-нибудь сможет мне помочь с некоторым регулярным выражением. Я хочу разбить следующую строку на алфавит и номер.

Пример Строка ns01sp0001 после раскола должна быть

ns01sp и 0001.

Я пробовал с регулярным выражением.

String array[] = str.split("[^A-Z0-9]+|(?<=[A-Z])(?=[0-9])|(?<=[0-9])(?=[A-Z])");

Для верхнего регистра это возврат

[NS, 01, SP, 0001]

но в нижнем регистре он возвращается

[, 01, 0001] // not able to get alphabet.

есть ли способ получить выход, например

[NS01SP,0001] // if input = NS01SP0001
[ns01sp,0001] //if input = ns01sp0001.
  • 1
    Всегда ли будет два элемента? Если нет, то по какому правилу 01 становится частью ns01sp а не его собственным элементом?
  • 1
    Ваша строка имеет фиксированную длину? или eyerytime 4 числа в конце?
Показать ещё 6 комментариев
Теги:
string
split

1 ответ

3
Лучший ответ

Вы можете использовать:

String tok[] = str.split("(?<=\\D)(?=\\d+\\b)");

Демо-версия RegEx

Ещё вопросы

Сообщество Overcoder
Наверх
Меню