找到最长的"数字序列"在只使用一个正则表达式的字符串中

时间:2016-03-18 16:55:37

标签: java regex pattern-matching strategy-pattern

我想找到一个匹配URL中最长数字字符串的正则表达式。 I.e对于网址:http://stackoverflow.com/1234/questions/123456789/ask,我希望它返回:123456789

我以为我可以使用:([\d]+)

然而,这会从左侧返回第一场比赛,而不是最长的比赛。 任何想法:)?

此正则表达式将用作策略模式的输入,从策略模式中提取某些特征:

 public static String parse(String url, String RegEx) {

  Pattern pattern = Pattern.compile(regex);
  Matcher m = pattern.matcher(url);
  if (m.find()) {
    return m.group(1);
  }

return null;

}

如果我可以使用单个正则表达式,那将会更加整洁。 :( -