REGEX Получить последние 6 цифр из строки - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь получить последние 6 цифр из строк, которые выглядят так:

1234-56789 - последние 6 цифр будут 456789

12345/6789 - последние6 цифр будут 456789

1234567-89 - последние 6 цифр будут 456789

123-456789 - последние 6 цифр будут 456789

Это \d.{6}+$ регулярное выражение дает мне числа с символами - и /.

Выход для 1234-56789 равен 4-56789.Так как я могу получить 456789 без символов - и /?

С уважением

Ответы [ 2 ]

0 голосов
/ 21 мая 2019
  • Одна из проблем заключается в том, что не все движки регулярных выражений созданы равными.Так что, если Python поддерживает это, Java может не.

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

Но, придерживаясь принципа упрощения, вот решение на Java, которое можно адаптировать к другим языкам

      String[] data =
            { "1234-56789", "12345/6789", "1234567-89", "123-456789", "12-223"
            };
      for (String s : data) {
         String temp = s.replaceAll("[/-]", "");
         String lastSix = "String too short";
         if (temp.length() >= 6) {
            lastSix = temp.substring(temp.length() - 6, temp.length());
         }
         System.out.println(lastSix);
      }
0 голосов
/ 21 мая 2019

Я согласен с @oram.Сначала вы можете найти пробламатический символ с \D, заменить на "" (empty string), а затем получить окончательную строку с \d{6}$.

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