【发布时间】:2012-11-26 07:44:39
【问题描述】:
在下面,我需要得到:
String regex = "Item#: <em>.*</em>";
String content = "xxx Item#: <em>something</em> yyy";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(content);
if( matcher.find() ) {
System.out.println(matcher.group());
}
它会打印出来:
Item#: <em>something</em>
但我只需要值“某物”。
我知道我可以使用 .substring(begin,end) 来获取值, 但是还有其他更优雅的方法吗?
【问题讨论】:
-
除此之外,只需
"Item#: <em>(.*)</em>"添加括号。 -
@soulseekah 并使正则表达式不贪心
Item#: <em>(.*?)</em> -
@jlordo 是的,非贪婪的效果要好得多:)
-
@soulseekah,这非常聪明,谢谢。我会试试的。