Objet de métadonnées réel ::
,"Metadata":{"ModifiedDate":"Thu Dec 10 20151046","CreatedDate":"Thu Dec 10 2015 10:46:30 GMT+0530 (IST)","HiddenRule":"[{"text":"","data_type":"operator","internal_name":""},{"text":"Gender","data_type":"String","internal_name":"gender","class":"Open"},{"text":"","data_type":"operator","internal_name":""},{"text":"==","data_type":"operator","internal_name":"==","class":"Oper"},{"text":"","data_type":"operator","internal_name":""},{"text":"\"sd\"","data_type":"operator","internal_name":"\"sd\"","class":"Cons"},{"text":"","data_type":"operator","internal_name":""}]"}
Essayez de rechercher l'objet "Métadonnées" dans la chaîne JSON et remplacez-le par un blanc. Supprimez fondamentalement l'objet de la chaîne JSON. , "Métadonnées" [a-zA-Z0-9: {} ", + () [] _ ==][}]. Mais une fois compilé dans le programme JAVA, je fais face à l’exception,
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 41
,"Metadata"[a-zA-Z0-9:{}" ,+()[]_==*]*[}]
^
at java.util.regex.Pattern.error(Pattern.java:1924)
at java.util.regex.Pattern.clazz(Pattern.java:2493)
at java.util.regex.Pattern.sequence(Pattern.java:2030)
at java.util.regex.Pattern.expr(Pattern.java:1964)
at java.util.regex.Pattern.compile(Pattern.java:1665)
at java.util.regex.Pattern.<init>(Pattern.java:1337)
at java.util.regex.Pattern.compile(Pattern.java:1022)
at java.lang.String.replaceAll(String.java:2162)
at temp.main(temp.java:20)
String str=","Metadata":{"ModifiedDate":"Thu Dec 10 20151046","CreatedDate":"Thu Dec 10 2015 10:46:30 GMT+0530 (IST)","HiddenRule":"[{"text":"","data_type":"operator","internal_name":""},{"text":"Gender","data_type":"String","internal_name":"gender","class":"Open"},{"text":"","data_type":"operator","internal_name":""},{"text":"==","data_type":"operator","internal_name":"==","class":"Oper"},{"text":"","data_type":"operator","internal_name":""},{"text":"\"sd\"","data_type":"operator","internal_name":"\"sd\"","class":"Cons"},{"text":"","data_type":"operator","internal_name":""}]"}";
String regexes = ","Metadata"[a-zA-Z0-9:{}" ,+()[]\_==*]*[}]";
System.out.println(str.replaceAll(regexes, "Hi!!!"));
Réponses:
0 pour la réponse № 1[
et ]
sont des caractères spéciaux dans regex. vous devez y échapper.
[a-zA-Z0-9:{}" ,+()[]_==*]*[}]