Ich habe eine Zeichenfolge wie folgt:Wie kann ich einen Wert aus String mit Regex abrufen?
"text1 <text2> text3"
Ich möchte <>
nur den Text greifen. Also muss ich text2
bekommen. Wie kann ich es tun?
Ich habe eine Zeichenfolge wie folgt:Wie kann ich einen Wert aus String mit Regex abrufen?
"text1 <text2> text3"
Ich möchte <>
nur den Text greifen. Also muss ich text2
bekommen. Wie kann ich es tun?
Sie es wie folgt tun:
String value = "text1 <text2> text3 <text4>";
Pattern pattern = Pattern.compile("<([^>]*)>");
Matcher matcher = pattern.matcher(value);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
Ausgang:
text2
text4
Antwort Update:
Unter der Annahme, dass Sie wissen, dass Sie nur einen Wert haben zu extrahieren, Bohemian schlägt einen einfacheren Ansatz, schlägt er als nächstes gehen Sie vor:
String value = "text1 <text2> text3";
String target = value.replaceAll(".*<(.*)>.*", "$1");
System.out.println(target);
Ausgang:
text2
Sie können es mit Weg tun weniger Code als das ... – Bohemian
It ' s nicht einmal eine Zeile, es braucht nur einen Methodenaufruf: 'String target = value.replaceAll (". * <(.*)>. * "," $ 1 ");'. Weniger Code == weniger Bugs, einfacher zu lesen und zu pflegen. – Bohemian
stellt sich die Frage klar, ob nur ein Wert von der Eingabe erhalten werden soll. Die einfachste Lösung ist immer die beste. – Bohemian
Ich schlage vor, Sie diese Zeichenfolge teilen mit „“ als Trennzeichen - Sie 3 -Elemente Array erhalten wird und das zweite ist, was Sie suchen
Pflicht Link: [RegEx entspricht offenen Tags außer XHTML-eigenen Tags] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – Pshemo