Java正则表达式,用于标识数字多于非数字的字符串

1 java regex

如何使用Java中的正则表达式(Pattern)识别包含比非数字更多位数的字符串?谢谢.

Dav*_*ave 12

这不是一种常规语言,因此它不能被香草正则表达式捕获.无论如何,它可能是可能的,但是不使用正则表达式几乎肯定会更容易:

public static boolean moreDigitsThanNonDigits(String s) {
    int diff = 0;
    for(int i = 0; i < s.length(); ++i) {
        if(Character.isDigit(s.charAt(i))) ++diff;
        else --diff;
    }
    return diff > 0;
}
Run Code Online (Sandbox Code Playgroud)


wax*_*ing 10

您将无法编写执行此操作的正则表达式.但是你已经说过你正在使用Java,为什么不混合使用一些代码呢?

public boolean moreDigitsThanNonDigits(String input) {
    String nonDigits = input.replace("[0-9]","");
    return input.length() > (nonDigits.length * 2);
}
Run Code Online (Sandbox Code Playgroud)