언어 ⏎/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());
}