J'essaie d'accéder à une certaine partie de plusieurs chaînes qui suivent un modèle.
Voici un exemple de ce que j'essaie de faire. P>
String s = "Hello my name is Joe";
if(Pattern.matches(s,"Hello my name is ([\\w]*)"))
{
System.out.println("Name entered: $1");
}
4 Réponses :
Échangez les paramètres à la méthode code> correspondant code> et votre Cependant, vous avez toujours gagné 'T Imprimer le premier groupe de capture avec si code> fonctionnera (REGEX est le 1er paramètre, pas la deuxième). 1 $ code>. Pour ce faire: P> String s = "Hello my name is Joe";
Matcher m = Pattern.compile("Hello my name is ([\\w]*)").matcher(s);
if(m.matches())
{
System.out.println("Name entered: " + m.group(1));
}
Eh bien, c'était embarrassant. Merci. De plus, je pense que la deuxième ligne doit être la correspondance M = Pattern.comPile ("Bonjour mon nom est ([\\ w] *)"). Correspondant (s);
Essayez d'utiliser la classe de correspondance, voir cette page pour plus d'informations sur les expressions régulières en Java http://java.sun.com/developer/technicalarticles/relases/1.4regex/ P>
Parce que vous avez les paramètres à http://docs.oracle. COM / Javase / 6 / Docs / API / Java / Util / Regex / Pattern.html P>
En outre, vous n'avez pas besoin d'un ensemble (les supports). De plus, vous devrez utiliser la classe CODE> MATCHER CODE> et obtenir la brackreference via la méthode motif.matches () code> en arrière. p>
GROUP () CODE>. P>
Je pense que vous recherchez ceci:
final String s = "Hello my name is Joe";
final Pattern p = Pattern.compile("Hello my name is (\\w++)");
final Matcher m = p.matcher(s);
if (m.matches()) {
System.out.printf("Name entered: %s\n", m.group(1));
}
La ligne
si code> manque une parenthèse de fermeture ...Avez-vous réellement vérifié le Documentation ?