import java.util.regex.*;
public class PatternDecimalForme {
public static void main(String[] args) {
Pattern p = Pattern.compile("(\\d+\\.\\d*([eE][+-]?\\d+)?[fFdD]?)" +
"|(\\.\\d+([eE][+-]?\\d+)?[fFdD]?)" +
"|(\\d+[eE][+-]?\\d+[fFdD]?)" +
"|(\\d+([eE][+-]?\\d+)?[fFdD])");
Matcher m = p.matcher("abc1.25e-3def1.+15ghi+.2E-15Fj");
for (int nb=0; m.find(); ++nb) {
int[] formes = {1,3,5,6};
int j;
for (j=0; m.group(formes[j])==null; ++j) ; System.out.println("Occurrence " + nb + " : " + m.group()
+ " forme " + (j+1) );
}
}
}