Как мне проанализировать последние 6 цифр строки с помощью регулярных выражений в Java? - PullRequest
0 голосов
/ 02 июня 2011

Я хотел бы знать, как проанализировать последние 6 цифр из строки Java.Итак:

String input1 = "b400" // the regex should return b400  
String input2 = "101010" // the regex should return 101010  
String input3 = "12345678" // the regex should return 345678  

Ответы [ 2 ]

4 голосов
/ 02 июня 2011

Регулярное выражение не требуется.

input.substring(Math.max(0, input.length() - 6));

Если оно должно быть регулярным выражением по причинам API,

Pattern.compile(".{0,6}\\Z", Pattern.DOTALL)

Если вам необходимо сопоставить последние 6 кодовых точек (включая дополнительные кодовые точки), то вы можете заменить . на (?:[\\ud800-\\udbff][\\udc00-\\udfff]|.){0,6}

1 голос
/ 02 июня 2011

Я предполагаю, что для вашего примера для «input1» вы хотите просто «400» (не «b400»).Вот решение, которое будет возвращать до последних шести цифр данной строки или ноль, если строка не заканчивается никакими цифрами:

public String getLastSixDigits(String source) {
  Pattern p = Pattern.compile("(\\d{0,6})$");
  Matcher m = p.matcher(source);
  if (m.find()) {
    return m.group(1);
  } else {
    return null;
  }
}

Как обычно, сохраняйте шаблон как элемент для улучшенияпроизводительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...