RegExp : optimalité d'un split par rapport à un group
Bonjour,
je souhaite traîter une chaine de caractères afin d'en récupérer une partie si elle est conforme à mon protocole.
J'ai trouvé 2 façons de faire et je me demande laquelle est la plus optimale :
Code:
1 2
|
String str = "abcsd: 12 efgh" |
le but est de retourner le nombre 12.
Méthode 1 :
Code:
1 2 3 4 5
|
if(Pattern.matches("^abcsd: \\d+ efgh$", str)){
String[] tab = str.split(" ");
System.out.println(tab[1]);
} |
Méthode 2 :
Code:
1 2 3 4 5 6
|
Pattern p = Pattern.compile("^abcsd: (\\d+) efgh$");
Matcher m = p.matcher(str);
if(m.matches()){
System.out.println(m.group(2));
} |
Si une autre méthode existe, je suis aussi preneur...