Chcem analyzovať pohyblivé hodnoty z
CallCost:Rs.13.04 Duration:00:00:02 Bal:Rs.14.67 2016 mein Promotion
Z vyššie uvedeného reťazca potrebujem 13.04 a 14.67. Použil som nasledujúci regex
Pattern p = Pattern.compile("\d*\.\d+");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(">> " + m.group());
}
Ale pomocou tohto dostávam ".13", ".04", ".14", ".67" Vopred ďakujem
odpovede:
7 pre odpoveď č. 1použitie \d+
namiesto \d*
Pattern p = Pattern.compile("\d+\.\d+");
Prečo?
Pretože ak používate \d*\.\d+
, malo by sa to zhodovať s bodkou vedľa Rs
, pretože ste urobili celé číslo na opakovanie nuly alebo viackrát., Takže sa nestará o celé číslo.