匹配和模式 Android

Matcher & Pattern Android

public String match(String cadena){
    String name = "";
    Pattern p = Pattern.compile("\d");
    Matcher m = p.matcher(cadena);
    while (m.find()) {
        name = name + m.group(0);
    }
    return name;
}

请帮忙,我需要输入这样的字符串

ej. :USD $ 2300.00

结果:

2300.00

我只是把它放到我的字符串中:

v.getText().toString().replaceAll("[^\d.]", "");

你也可以试试这个模式:"\d+\.?\d[0-2]"

解释:

\d+ - 查找 0 到 9 之间的 1 个或多个数字

\.? - 可以有一个点,但不一定是 (? = 0 or 1)

\d[0-2] - 点后最多可以是 0 和 9 之间的 2 位数字

使用此模式,您将从 ej return 2300.00。 :USD $ 2300.00