Je regardais une partie du code JDK. J'ai trouvé ces personnages. Peut-être que quelqu'un pourrait m'expliquer quoi cela signifie-t-il?
public static String quote(String s) {
int slashEIndex = s.indexOf("\\E"); // What does this mean. Is this a special char in java. if so what does this do.
if (slashEIndex == -1)
return "\\Q" + s + "\\E";
StringBuilder sb = new StringBuilder(s.length() * 2);
sb.append("\\Q");
slashEIndex = 0;
int current = 0;
while ((slashEIndex = s.indexOf("\\E", current)) != -1) {
sb.append(s.substring(current, slashEIndex));
current = slashEIndex + 2;
sb.append("\\E\\\\E\\Q");
}
sb.append(s.substring(current, s.length()));
sb.append("\\E");
return sb.toString();
}
3 Réponses :
Eh bien, La plupart de cette méthode ne fonctionnent que sur le tracking Edge Cas de citant les marqueurs de devis \ q code> et \ e code> avoir une signification spéciale dans Java expressions régulières ... p>
\ q code> et \ e code> eux-mêmes. P>
Le moteur Java Regex Bloque une interprétation spéciale de tous les méta-caractères entre Le procédé fait une expression régulière d'une chaîne prévue vraisemblablement externe (par exemple entrée par un utilisateur). Étant donné que la chaîne peut contenir des méta-caractères, la méthode renferme la chaîne entière dans \ q code> et \ e code>. Par exemple, [nom] code> correspond à un seul caractère ( 'n' code>, 'a' code>, 'm' code> " , ou 'E' code>), tandis que \ q [nom] \ e code> correspond à six caractères - '[' code>, 'n' code>, 'a' code>, 'm' code>, 'e' code> et ']' code>. Voir la section em> caractères spéciale em> de la Tutoriel Regex pour plus de détails . p>
\ q code> et \ e code>. Si la chaîne contient déjà un \ e code>, la méthode insère la fin de la citation, une correspondance de \ e code> et un début d'un nouveau devis pour chaque \ E code> qu'il trouve .. p>
Pour plus de détails, voir ce lien: strong> p>
http: // docs. oracle.com/javase/1.5.0/docs/api/java/util/regex/pattern.html p> \ q code> et \ e code> est exactement ce que motif.quote () code> fait, c'est-à-dire que retourne une chaîne de motif littéral pour la chaîne spécifiée. fort> p>
Ce code semble être Soulevé directement des sources Java A> (
modèle.java code>, lignes 1276..1293).Oui c'est à partir du modèle de sources JDK.java