Gegeben _<A_>_<B_>_<Z_>
, ich möchte A, B, C
in einem Array extrahieren.Java - Split durch Trennzeichen
Grundsätzlich ist _<
das Starttrennzeichen und _>
ist das Endtrennzeichen.
Gegeben _<A_>_<B_>_<Z_>
, ich möchte A, B, C
in einem Array extrahieren.Java - Split durch Trennzeichen
Grundsätzlich ist _<
das Starttrennzeichen und _>
ist das Endtrennzeichen.
so einfach ist - ausgeschnitten zuerst öffnen und schließen letzte, und teilen Sie es dann durch die close-Open
string.replaceFirst("^_<(.*)_>$", "$1").split("_>_<");
Sie extrahieren sie mit capture groups.
und wie erhalten Sie Array von Gruppen :)? von _
@SergeS Ist das eine Trickfrage? Du machst nur eins. Liste
ok, also zeige einen funktionierenden Beispielcode, weil ich es nicht über Gruppen bearbeiten kann – SergeS
Spaltung von _<
2 Elemente zu bekommen, die 2. nehmen und teilen sie durch _>
2 Elemente zu bekommen, nehmen Sie die 1. und spaltete es durch _>_<
A zu erhalten, B, C
Nein, nicht aufteilen. Dafür sind Capture-Gruppen da. – nes1983
Sie lookaround assertions verwenden können, nur den Inhalt der Tags zu entsprechen.
String text = "_<A_>_<B_>_<Z_>";
List<String> Result = new ArrayList<String>();
Pattern p = Pattern
.compile("(?<=_<)" + // Lookbehind assertion to ensure the opening tag before
".*?" + // Match a less as possible till the lookahead is true
"(?=_>)" // Lookahead assertion to ensure the closing tag ahead
);
Matcher m = p.matcher(text);
while(m.find()){
Result.add(m.group(0));
}
Was haben Sie bisher versucht? Bitte versuchen Sie, sich selbst zu implementieren, und stellen Sie dann spezifische Fragen zu Problemen, die Sie bei der Implementierung haben. – Deco
'.replaceFirst (" (? S)^_ <(.*)_> $ "," $ 1 "). Split (" _> _ <")' –
@Deco, Du hast Recht .. Ich hätte es auflegen sollen ... Aber was? Ich versuchte, war sehr grundlegend, dh Sequentiell nach einem Trennzeichen suchen und ein Array auffüllen. – 500865