REGEX从字符串中获取最后6位数字

时间:2019-05-21 13:25:46

标签: regex

我正在尝试从看起来像这样的字符串中获取最后6位数字

1234-56789-后6位数字为456789

12345/6789-后6位数字为456789

1234567-89-后6位数字为456789

123-456789-后6位数字为456789

\d.{6}+$正则表达式为我提供了带有字符-/的数字。

1234-56789的输出为4-56789。那么如何获得没有字符456789-的{​​{1}}?

最诚挚的问候

2 个答案:

答案 0 :(得分:0)

我同意@oram。首先,您可以找到带有\D的普通疑问句,用"" (empty string)替换,然后使用\d{6}$得到最终的字符串。

答案 1 :(得分:0)

  • 一个问题是,并非所有正则表达式引擎都被创建 等于。因此,如果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);
      }