从开头删除零

时间:2016-09-07 01:26:26

标签: java regex regex-lookarounds

我正在尝试使用正则表达式(非捕获组)删除值中的零。有没有人有想法?

Matcher matcher = Pattern.compile("(?:[0]+)?(\\S+)").matcher("00100");//.group(0));
//Matcher matcher = pattern.matcher(mydata);

if(matcher.matches()) {
    System.out.println("value   "+matcher.group(0));
}

3 个答案:

答案 0 :(得分:0)

如果要删除前导零,可以使用replaceAll

String input = "00100";
input = input.replaceAll("^0+([^0].*)$", "$1");

Regex101

答案 1 :(得分:0)

str.replaceAll("^0+(?!$)", "")

答案 2 :(得分:0)

我找到了解决自己问题的方法:

public static void main(String[] args) {
    extractValuesFromRegex("(?:0+|)(\\d+)", "00123");
    extractValuesFromRegex("(?:0+|)(\\d+)", "123");
    extractValuesFromRegex("(\\d+)", "00123");
    extractValuesFromRegex("(\\d+)", "00123");
}

public static final String extractValuesFromRegex(String regex, String input) {
    String extractevalue = input;
    Matcher matcher = Pattern.compile(regex).matcher(input);

    if (matcher.matches()) {
        extractevalue = matcher.group(1);
    }
    return extractevalue;
}