我有一个像这样的字符串:

@78517700-1f01-11e3-a6b7-3c970e02b4ec@68517700-1f01-11e3-a6b7-3c970e02b4ec@98517700-1f01-11e3-a6b7-3c970e02b4ec@38517700-1f01-11e3-a6b7-3c970e02b4ec...。

我想提取@之后的字符串。

我有如下的当前代码:

private final static Pattern PATTERN_LOGIN = Pattern.compile("@[^\\s]+");
Matcher m = PATTERN_LOGIN.matcher("@78517700-1f01-11e3-a6b7-3c970e02b4ec , @68517700-1f01-11e3-a6b7-3c970e02b4ec, @98517700-1f01-11e3-a6b7-3c970e02b4ec, @38517700-1f01-11e3-a6b7-3c970e02b4ec");
while (m.find()) {
        String mentionedLogin = m.group();
        .......
   }


...但是m.group()给了我@78517700-1f01-11e3-a6b7-3c970e02b4ec但我想要78517700-1f01-11e3-a6b7-3c970e02b4ec

最佳答案

您应该使用正则表达式"@([^\\s]+)",然后使用m.group(1),这将返回由捕获括号()“捕获”的内容。

m.group()m.group(0)返回由正则表达式找到的完整匹配字符串。

10-07 12:59