2010-08-11 7 views

Répondre

2
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class Test { 
    public static void main(String[] args) { 
     Pattern p = Pattern.compile("^[a-zA-Z]+([0-9]+).*"); 
     Matcher m = p.matcher("completei4e10"); 

     if (m.find()) { 
      System.out.println(m.group(1)); 
     } 

    } 
} 
+0

C'est la méthode que j'utilise toujours. – Molske

0

Il y a plusieurs façons de le faire, mais vous pouvez le faire:

String str = "completei4e10"; 

    str = str.replaceAll("completei(\\d+)e.*", "$1"); 

    System.out.println(str); // 4 

Ou peut-être le modèle est [^i]*i([^e]*)e.*, selon ce qui peut être autour de la i et e.

System.out.println(
     "here comes the i%@#$%@$#e there you go i000e" 
      .replaceAll("[^i]*i([^e]*)e.*", "$1") 
    ); 
    // %@#$%@$# 

Le […] est un character class. Quelque chose comme [aeiou] correspond à l'une des voyelles minuscules. [^…] est une classe de caractères annulée. [^aeiou] correspond à l'un des tout sauf les voyelles minuscules. Le numéro (…) est un capturing group. Les * et + sont spécificateur repetition dans ce contexte.

Questions connexes