언어 ⏎/java

정규표현식

LeeDiculous 2023. 2. 7. 11:11

예제

RegularExam01.java

import java.util.Scanner;

public class RegularExam01 {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);	
		System.out.print("문자열: ");
		String str = sc.nextLine();
		
		/*
		 * //abc 문자열의 포함 여부 
		 * if(str.matches(".*abc.*")) System.out.println("매칭"); else
		 * System.out.println("비매칭");
		 */
		
		/*
		 * //숫자만 3자리 유무 판단 if(str.matches("[\\d]{3}")) System.out.println("매칭"); else
		 * System.out.println("비매칭");
		 */
		
		/*
		 * //알파벳, 숫자만 5자리 이상 
		 * if(str.matches("[\\w]{5,}")) System.out.println("매칭"); else
		 * System.out.println("비매칭");
		 */  
		
		/*
		 * //이메일 관련 검증 //dolsam77@nate.com => 매칭 //432dolsam77@nate.com => 비매칭
		 * //dolsam77nate.com => 비매칭 //dolsam77@nate.comcomcom => 비매칭
		 * if(str.matches("^[\\D]\\w+@\\w+\\.\\w{2,3}$")) System.out.println("매칭"); else
		 * System.out.println("비매칭");
		 */
		
//		//일반, 이미지 파일 식별
//		//abc.jpg, abc.gif, abc.PNG, abc.txt
//		//(?i)소대문자 구분 없이
//		if(str.matches("^\\S+\\.(?i)(jpg|gif|png)$")) System.out.println("매칭");
//		else System.out.println("비매칭");
		

		String message = "SW 개발자1414121";
//		String result = message.replaceAll("SW", "소프트웨어");
		
		//문자열 안의 숫자를 모두 제거하세요.
		String result = message.replaceAll("\\d", ""); // [0-9] or \\d
		System.out.println(result);

	}
}

RegularExam02.java

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

public class RegularExam02 {
	public static void main(String[] args) {
		String data[] = {
				"bat", "bba", "bbg", "bonus",
				"CA", "ca", "c232", "car",
				"date", "dic", "diraaa"
		};
		
		Pattern pattern = Pattern.compile("c[a-z]*");
		
		for(int i=0;i<data.length;i++) {
			Matcher m = pattern.matcher(data[i]);
			if(m.matches()) System.out.println(data[i]);
		}
	}
}
		String source = "ab?cd?ef?hg";
		String reg = "(\\w*)";
		
		Pattern p = Pattern.compile(reg);
		Matcher m = p.matcher(source);
		
		while(m.find()) {
			System.out.println(m.group());
		}
		String source = "HP: 010-1111-1111, HOME: 02-2222-2222";
		String reg = "(\\d{2,3}-\\d{3,4}-\\d{4})";
		
		Pattern p = Pattern.compile(reg);
		Matcher m = p.matcher(source);
		
			while(m.find()) {
			System.out.println(m.group());
		}