【发布时间】:2016-09-01 11:57:17
【问题描述】:
我有一个这样的字符串:
"text1 <text2> text3"
我只想获取<> 中的文本。所以我需要得到text2。我该怎么做?
【问题讨论】:
我有一个这样的字符串:
"text1 <text2> text3"
我只想获取<> 中的文本。所以我需要得到text2。我该怎么做?
【问题讨论】:
你可以这样做:
String value = "text1 <text2> text3 <text4>";
Pattern pattern = Pattern.compile("<([^>]*)>");
Matcher matcher = pattern.matcher(value);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
输出:
text2
text4
回复更新:
假设你知道你只有一个值要提取,Bohemian 提出了一种更简单的方法,他建议按照下一个进行:
String value = "text1 <text2> text3";
String target = value.replaceAll(".*<(.*)>.*", "$1");
System.out.println(target);
输出:
text2
【讨论】:
String target = value.replaceAll(".*<(.*)>.*", "$1");。更少的代码 == 更少的错误,更易于阅读和维护。
我建议你使用 " " 作为分隔符来分割这个字符串 - 你会得到 3 个元素数组,第二个是你要找的
【讨论】: