Разбить строку на разную длину - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть строка String s = " ABCD 1122-12-12", т. Е. Формат <space or single digit number>+<any string>+<space>+<date in YYYY-mm-dd>.

Что может быть регулярным выражением для метода String.split или любых других служебных методов для разделения указанной строки на три части

[0] = <space or single digit number> = " "

[1] = <string> = "ABCD"

[2] = <date in YYYY-mm-dd> = "1122-12-12"

1 Ответ

0 голосов
/ 11 февраля 2019

Регулярное выражение ( |\d)(.+) (\d{4}-\d{2}-\d{2}) должно выполнять эту работу.

String input = " ABCD 1122-12-12";
Pattern pattern = Pattern.compile("( |\\d)(.+) (\\d{4}-\\d{2}-\\d{2})");
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
  String spaceOrDigit = matcher.group(1);
  String string = matcher.group(2);
  String date = matcher.group(3);
  System.out.println("spaceOrDigit = '" + spaceOrDigit + "'");
  System.out.println("string = '" + string + "'");
  System.out.println("date = '" + date + "'");
}

Вывод:

spaceOrDigit = ' '
string = 'ABCD'
date = '1122-12-12'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...