例如:
Pattern pattern = Pattern.compile("a(.*)b");
Matcher matcher = pattern.matcher("a19203b");
matcher.find();
System.out.println(matcher.group());
这会打印出整个字符串(a19203b
)。我只需要19203
。我怎样才能用Java获得它?
(例如,在mod_rewrite规则中,我会做类似RewriteRule article/(.*) article.php?id=$1
的事情,其中$1
是我需要的字符串)
答案 0 :(得分:4)
找到解决方案。而不是matcher.group()
,请使用matcher.group(1)
。
Pattern pattern = Pattern.compile("a(.*)b");
Matcher matcher = pattern.matcher("a19203b");
matcher.find();
System.out.println(matcher.group(1));
答案 1 :(得分:1)
使用lookbehinds / lookaheads:
Pattern regex = Pattern.compile("(?<=a).*(?=b)");
不捕捉您不想捕捉的内容。在这里你的整场比赛将是你想要的。