Nehmen wir zum Beispiel eine Zeichenfolge {"Hallo": "Welt"}
und eine weitere Zeichenfolge {"hi": "hallo"}
Ich möchte in der ersten Zeichenfolge vor dem Doppelpunkt nach dem Hallo suchen (:)
Mein Code findet und gibt jedoch die Zeichenfolge zurück, die die angegebene abgefragte Zeichenfolge enthält, nicht jedoch die Zeichenfolge, die die abgefragte Zeichenfolge nur vor dem Doppelpunkt enthält, dh vor dem linken Teil
Hier enthält die Liste eine Liste von Zeichenfolgen
for(int i = 0; i < list.size; i++)
{
if(list.get(i).contains(query))
list.remove(i);
}
Das heißt, es wird die erste erscheinende Zeichenfolge gefunden, die die angegebene Abfrage enthält, jedoch nicht die Zeichenfolge bis zum angegebenen Zeichen
Wenn die Zeichenfolge Teil einer JSON-Datei ist, sollten Sie einen JSON-Parser verwenden. Wenn nicht, können Sie die Java-Regex-API wie folgt verwenden:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String input = "{\"hello\":\"world\"}";
Matcher matcher = Pattern.compile("\\w+(?=.*:)").matcher(input);
if (matcher.find()) {
System.out.println(matcher.group());
}
}
}
Ausgabe:
hello
Erklärung der Regex:
\w+
Gibt ein oder mehrere Wortzeichen an .(?=.*:)
Spezifiziert positiver Vorgriff - für .*:
wo .*
Spezifiziert eine beliebige Anzahl von beliebigen Zeichen (s). Die auf .
jedes Zeichen spezifizieren und *
wird als verwendet Quantifizierer , null oder mehrere Male .:
gibt das Zeichenliteral an, :
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen