PatternDecimalForme.java

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) ; // corps de boucle vide
      System.out.println("Occurrence " + nb + " : " + m.group() 
                         + " forme " + (j+1) );
    }
  }
}