本函数可以进行群组匹配,群组的概念这里不进行详细描述,举个简单的例子,假设你的输入模式为(.*):(.*)([ap])m,输入字符串为11:60am,那么群组输出为(对应着括号内部的内容,这里的括号不是常规的括号,是这里的特殊标记,如果要表达括号得加上转义字符"\\("或“\\)”,注意英文符号和中文符号是不一样的)
11
60
a
import java.util.*;
import java.util.regex.*;
public class test
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String patternString="(.*):(.*)([ap])m";//这里用户可以随意更改
Pattern pattern = null;
try
{
pattern = Pattern.compile(patternString);
}
catch (PatternSyntaxException e)
{
System.out.println("Pattern syntax error");
System.exit(1);
}
while (true)
{
System.out.println("Enter string to match: ");
String input = in.nextLine();
if (input == null || input.equals("")) return;
Matcher matcher = pattern.matcher(input);
if (matcher.matches())
{
System.out.println("Match");
int g = matcher.groupCount();
if (g > 0)
{
for(int i=1;i<=g;i++)
System.out.println(matcher.group(i));
}
}
else
System.out.println("No match");
}
}
}