2016-03-30 8 views
-1

Ich habe zwei map-ähnliche Java-Strings.Java Regex Zeichenfolge Submuster Ausschluss

String msg = "{Name:\"Mouse\",abc:\"123\",c:0,trash:\"12345\"}" 
    string msg2 ="{Name:\"Mouse\",abc:\"123\",c:0,trash:\"10005\"}" 

Ich habe Java Regex zu tun, um nur diese beiden Strings zu vergleichen und true zurück, wenn beide gleich sind, außer für den Wert des Müll-Taste. Offenbar würde in den beiden oben genannten Strings der Vergleich falsch ausfallen, da die Werte für den Papierkorb unterschiedlich sind. Wie erreiche ich mit Regex ohne Typumwandlung?

Bitte zeigen Sie mir die richtige Richtung. Vielen Dank im Voraus

+1

Nun, Regex ist nicht zum Vergleich von Strings. Warum benutzt du Regex hier? strings scheint ein JSON-Dokument zu sein, verwenden Sie also die richtige Bibliothek. – Saleem

+0

Ersetzen Sie den Papierkorbschlüssel mit einem Standardwert und vergleichen Sie. – Thomas

Antwort

2

Sie können den Papierkorbeintrag in beiden Zeichenfolgen vor dem Vergleich entfernen, z.

 String p = ",trash:\".*\""; 
    boolean res = msg.replaceAll(p, "").equals(msg2.replaceAll(p, "")); 
+0

Das '. *' Sollte '. *?' Sein, damit es zuerst aufhört "' '. – Andreas