백엔드/Java

알고리즘

david100gom 2024. 3. 20. 11:56
// 알파벳으로 시작하고 _ 숫자 영문자만 허용하는 8-30 길이의 단어
String pattern = "^[a-zA-Z][a-zA-Z_0-9]{7,29}$";
String input = "";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
 
if (m.find()) {
    System.out.println("Valid");
} else {
    System.out.println("Invalid");
}
 
 
------
// 파일확장자
String pattern = "^\\S+.(?i)(txt|pdf|hwp|xls)$";
String input = "abc.txt";
         
boolean i = Pattern.matches(pattern, input);
if(i == true){
    System.out.println(input+"는 패턴에 일치함.");
}else{
    System.out.println("패턴 일치하지 않음.");
}
 
 
-------
// 같은태그로 감싸있는 문장만 추출
// input
// <h1>Nayeem loves counseling</h1>
// <h1><h1>Sanjay has no watch</h1></h1><par>So wait for a while</par>
// <Amee>safat codes like a ninja</amee>
 
//
// 결과:
// Nayeem loves counseling
// Sanjay has no watch
// So wait for a while
// None
 
 
int count=0;
Pattern r = Pattern.compile("<(.+?)>([^<>]+)</\\1>");
Matcher m = r.matcher(input);
while(m.find()) {
    if (m.group(2).length() !=0 ) {
        System.out.println(m.group(2));
        count++;
    }
}
if (count == 0) System.out.println("None");