String input = scanner.nextLine();
Pattern pattern = Pattern.compile("the [a-z]+ jumped over the [a-z]+ ")
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
// how do I print out what jumped over what???
}
在这个例子中,有人会输入类似"牛跳过月亮"要么 "狐狸跳过狗"或者"猫跳过鼠标" ... 我需要能够弄清楚它们放入两个占位符的值。 所以我的问题是如何获得正则表达式中两个[a-z] +点的值。
答案 0 :(得分:3)
您使用由parantheses标记的捕获组:"the ([a-z]+) jumped over the ([a-z]+)"
。
然后使用matcher.group(1)
和matcher.group(2)
来检索它们(组0始终是整个匹配项)。
答案 1 :(得分:1)
你应该使用一个小组。尝试使用此正则表达式:
"the ([a-z]+) jumped over the ([a-z]+) "
然后使用group(int)方法访问它。这是一个例子:
http://www.exampledepot.com/egs/java.util.regex/GroupInPat.html
答案 2 :(得分:1)
在正则表达式中,使用括号捕获组:
Pattern pattern = Pattern.compile("the ([a-z]+) jumped over the ([a-z]+) ");
如果正则表达式匹配,您可以按如下方式获取捕获的group:
String group1 = matcher.group(1);
String group2 = matcher.group(2);