Java 除1和0之外的匹配号码

Java 除1和0之外的匹配号码,java,regex,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()) + "." .... 但我认为

如何获取除前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()) + "."
....

但我认为它可以通过一行或两行来实现,您应该使用循环。希望这会有所帮助

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);
Pattern p=Pattern.compile(“[2-9]”);
String[]split=number.split(“\\”);
字符串n=“”;
对于(int i=0;i使用
replaceAll()
,扫描位于其他数字前面的
0
1
数字,即

  • a
    0
    1
    数字:
    [01]
  • 前面没有数字:
    (?
    
  • 并后跟至少一个数字:
    (?=\d)

要找到它们的正则表达式是:
(?我可以组合到模式p=pattern.compile(“[2-9]”)和String[]split=number.split(“\\”);@JNat如果需要删除所有前导的
0
1
数字,请在
[01]之后添加
+
。不知道要消除
-22
,需要什么规则。也许如果您学习了正则表达式,您可以自己定义规则。
String n = number.replaceAll("(?<=^|\\D)[01](?=\\d)", "");