匹配的数字除了1和0

时间:2017-12-29 06:15:09

标签: java regex

除了前0和1之外我怎么能得到所有数字,例如043241.124.22,我需要得到43241.24.22。 我写了代码

Pattern p = Pattern.compile("[2-9]");
String[] split = number.split("\\.")
String n = "";
Matcher m = p.matcher(split[0])
m.find();
n += split[0].substring(matchere.start()) + "."
....

但我认为它可以通过一两行

来完成

2 个答案:

答案 0 :(得分:1)

使用replaceAll(),扫描其他数字01数字,即

  • 01数字:[01]
  • 前面没有数字:(?<=^|\D)(?<!\d)
  • 后跟至少一位数:(?=\d)

找到这些的正则表达式是:(?<=^|\D)[01](?=\d)

Java代码是:

String n = number.replaceAll("(?<=^|\\D)[01](?=\\d)", "");

有关正常工作的代码,请参阅IDEONE

答案 1 :(得分:0)

你应该使用循环。希望这会有所帮助。

Pattern p = Pattern.compile("[2-9]");
String[] split = number.split("\\.");
String n = "";
for(int i=0;i<split.length;i++)
{
Matcher m = p.matcher(split[i]);
m.find();
n += split[i].substring(m.start())+".";

}
System.out.println(n);