我在Java中有一个正则表达式:
Pattern pattern = Pattern.compile(<string>text</string><string>.+</string>);
Matcher matcher = pattern.matcher(ganzeDatei);
while (matcher.find()) {
String string = matcher.group();
...
这很好用,但输出类似
<string>text</string><string>Name</string>
但我只想要这个:Name
我该怎么做?
答案 0 :(得分:19)
通过将其包装在括号中来捕获要返回的文本,因此在此示例中,您的正则表达式应该变为
<string>text</string><string>(.+)</string>
然后您可以访问括号与
之间匹配的文本matcher.group(1)
您正在调用的no-arg group方法返回与您的模式匹配的输入文本的整个部分,而您只需要一个与捕获组(括号)匹配的子序列。 / p>
答案 1 :(得分:5)
然后这样做:
Pattern pattern = Pattern.compile(<string>text</string><string>(.+)</string>);
Matcher matcher = pattern.matcher(ganzeDatei);
while (matcher.find()) {
String string = matcher.group(1);
...
<强>参考:强>
答案 2 :(得分:-2)
您必须将group()
想要获取的文字放入括号中。所以使用:
<string>(.+)</string>