
注意仅限于进行.等模糊处理时)
[0-5][0-9]))[ap]m,并且输入11:59am out:Match ((11)
59))am */ public static void testGroupMatch() { Scanner in = new Scanner(System.in); System.out.println("Enter pattern: "); String patternString = in.nextLine(); Pattern pattern = null; try { pattern = Patternpile(patternString); } catch (PatternSyntaxException e) { System.out.println("
attern 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 = 0; i input.length(); i++) { for (int j = 1; j = g; j++) {// 第0个分组代表所有的分组,第一个实际分组的索引是1。 if (i == matcher.start(j)) {// 此位置是分组的起始 System.out.print('('); } } System.out.print(input.charAt(i)); for (int j = 1; j = g; j++) { if (i + 1 == matcher.end(j)) {// 下一个位置是分组的完毕 System.out.print(')'); } } } System.out.println(); } } else System.out.println("No match"); } }
attern syntax error");System.exit(1);}
attern pattern = Patternpile(patternString,Pattern.CASE_INSENSITIVE);Matcher matcher = pattern.matcher(input);while (matcher.find()) {int start = matcher.start();int end = matcher.end();String match = input.substring(start, end);System.out.println(match);}| 欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) | Powered by Discuz! 6.0.0 |