J'ai une chaîne en Java. Voici la partie qui me concerne {3: {108:TR2011052300088}}
String.split (pattern) génère une exception due à {in pattern: java.util.regex.PatternSyntaxException
Plus tard, je fais une division sur {3: {108:
. Pour une raison quelconque (j'ai été googling) {
et }
est un caractère spécial donc il doit être échappé \}
et \{
(clairement cela ne fonctionne pas -> erreur de compilation).
D'autres mentionnent qu'il s'agit d'un bug dans Java regex. Je ne suis pas sûr vraiment. L'exception que je reçois est:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed counted closure near index 2 {3:{108: at java.util.regex.Pattern.error(Unknown Source)
Longue histoire courte, mon code divise la chaîne en utilisant {3: {108:
comme séparateur et se écrase sur elle:
String query="{3: {108:";
String [] messageParts = message.split(query);
Je suis au courant d'autres façons de le faire, bien que plus compliqué, comme l'écriture de mon propre analyseur et autres.
Comment est-ce que je peux faire mon partage de chaîne et ne pas l'avoir plantage?
EDIT: Pour répondre à certains commentaires:
- Double barres obliques ne permettent pas: \\{
donner \{3:\{108:MAMABEARid123}}
depuis le 2 barres obliques deviennent 1
- Echapper avec 1 slash ne compilera pas: non valide séquence d'échappement
Peut-être que l'échappement de '}' serait utile? Il vous dit qu'il essaie d'interpréter les crochets. –
oui, mais comment puis-je leur échapper? '\ {' ne fonctionne pas. – Adrian
Quand vous dites "clairement ceci ne fonctionne pas" il serait utile de dire de quelle manière * cela n'a pas fonctionné. –