code: public static String[] extractToken(String expression, String pattern) {
  		
  		// Si la chaine est vide
  		if(expression == null || expression.trim().length() == 0) {
  			
  			// On retourne null;
  			return null;
  		}
  		
  		// Si le pattern est null
  		if(pattern == null) {
  			
  			// On retourne null;
  			return null;
  		}
  		
  		// On splitte par l'espace
  		String[] spacePlitted = expression.split(SPLITTER_CHAIN);
  		
  		// Array des Tokens
  		StringBuffer aTokens = new StringBuffer();
  		
  		// Un Index
  		int index = 0;
  		
  		// On parcours le tableau
  		for (String spaceToken : spacePlitted) {
  			
  			// Si le token ne respecte pas le pattern
  			if(isExpressionContainPattern(spaceToken, pattern)) {
  
  				// Si on est pas au premier
  				if(index++ > 0) aTokens.append("@");
  				
  				// On ajoute
  				aTokens.append(spaceToken);
  			}
  		}
  		
  		// On split la chaine originale avec ce pattern
  		return aTokens.toString().split("@");
  	}
docs: Methode d'extraction de toutes les sous-chaines respectant le pattern donne
  @param expression	Expression mere
  @param pattern	Pattern a rechercher
  @return	Liste des sous-chaines respectant ce pattern