Patternの例

1618 ワード

package com.test;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.println("Enter pattern:");
		String patternStr = in.nextLine();
		Pattern pattern = null;
		try {
			pattern = Pattern.compile(patternStr);
		} catch (Exception e) {
			System.err.println("pattern syntax error");
			System.exit(1);
		}
		while(true){
			System.out.println("Enter String to math:");
			String input = in.nextLine();
			if(null == input || 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++) {
							if(i == matcher.start()){
								System.out.println("(");
							}
							System.out.println(input.charAt(i));
						}
						for (int j = 1; j <= g; j++) {
							if(i == matcher.end()){
								System.out.println(")");
							}
							System.out.println(input.charAt(i));
							
						}
						
					}
				
				}
			} else {
				System.out.println("no match");
			}
			
		}
		
	}
}