我正在尝试从看起来像这样的字符串中获取最后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}}?
最诚挚的问候
答案 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);
}